UIPickerView组件的使用之国旗联动——使用XIB自定义组件
来源:互联网 发布:网络新技术专题报告 编辑:程序博客网 时间:2024/04/28 11:44
具体步骤如下:
1
2
3
4
5
6
7
8
9
10
11
资源文件内的PLIST截图如下:
新建工程,代码如下:
Model类Flag如下:
Flag.h
//// Flag.h// 02.国旗联动//// Created by 刘刘勋 on 16/1/2.// Copyright © 2016年 aaaaa. All rights reserved.//#import <Foundation/Foundation.h>@interface Flag : NSObject@property(nonatomic, copy)NSString *name;@property(nonatomic, copy)NSString *icon;-(instancetype)initWithDic:(NSDictionary *)dic;+(instancetype)initWithDic:(NSDictionary *)dic;+(NSArray *)flagList;@endFlag.m
//// Flag.m// 02.国旗联动//// Created by 刘刘勋 on 16/1/2.// Copyright © 2016年 aaaaa. All rights reserved.//#import "Flag.h"@implementation Flag-(instancetype)initWithDic:(NSDictionary *)dic{ if (self = [super init]) { [self setValuesForKeysWithDictionary:dic]; } return self;}+(instancetype)initWithDic:(NSDictionary *)dic{ return [[self alloc] initWithDic:dic];}+(NSArray *)flagList{ //加载plist文件 NSString *path = [[NSBundle mainBundle] pathForResource:@"flags" ofType:@"plist"]; NSArray *dicArray = [NSArray arrayWithContentsOfFile:path]; //字典转模型 NSMutableArray *tmpArray = [NSMutableArray array]; for (NSDictionary *dic in dicArray) { Flag *flag = [Flag initWithDic:dic]; [tmpArray addObject:flag]; } return tmpArray;}@end
控制器viewController.m
//// ViewController.m// 02.国旗联动//// Created by 刘刘勋 on 16/1/2.// Copyright © 2016年 aaaaa. All rights reserved.//#import "ViewController.h"#import "Flag.h"#import "FlagView.h"@interface ViewController ()<UIPickerViewDelegate,UIPickerViewDataSource>@property(nonatomic, strong)NSArray *flags;@end@implementation ViewController-(NSArray *)flags{ if (!_flags) { _flags = [Flag flagList]; } return _flags;}- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.}#pragma mark- 返回pickerview的列数- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 1;}#pragma mark - 指明pickerView的每一列的行数- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ return self.flags.count;}#pragma mark -自定义pickerView的行-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ // // UILabel *label = [[UILabel alloc] init]; // label.backgroundColor = [UIColor yellowColor]; // label.text = @"XX"; // 注意:在此处我们可以不用设置返回组件的frame,系统会自动帮我们进行设置 /* 但是自定义组件要添加bounds 设置高度无效,需要在自定义代理方法中进行设置F reusingView:如果有重用的View,会传一个View进来 */ FlagView *flagView = (FlagView *)view; if (!flagView) { flagView = [FlagView flagView]; flagView.bounds = CGRectMake(0, 0, 200, 0); } // 设置数据 // 获取模型 Flag *flag = self.flags[row]; flagView.flag = flag; NSLog(@"row: %ld address: %p name: %@",row, flagView,flag.name); return flagView; }#pragma mark- 返回组件的高度-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ return 50;}@end
0 0
- UIPickerView组件的使用之国旗联动——使用XIB自定义组件
- UIPickerView组件的使用之——省市联动
- 自定义组件的简单使用—View
- UIPickerView组件的使用之随机点菜系统(一)——利用AutoResizing进行屏幕适配,拖线进行实现
- ios-day10-02(UIPickerView的使用。使用xib自定义pickerView每一行显示的view)
- iOS 之自定义UI组件的外观——使用UIAppearance协议自定义视图(初识)
- 自定义组件(xib生成)
- 自定义组件-BreadcrumbTreeView 的使用
- 自定义组件-BreadcrumbTreeView 的使用
- Ionic2自定义组件的使用
- flex3 :自定义组件使用
- 自定义组件使用总结
- Android自定义组件开发之onMeasure使用
- Android自定义组件开发之onMeasure使用
- 每日一记之选择城市的三级联动使用的是wheel组件
- Flex 自定义组件 -- 弹出窗口 [PopUpManager TitleWindow 组件]的使用
- Flex 自定义组件 -- 弹出窗口 [PopUpManager TitleWindow 组件]的使用
- vue初级学习--组件的使用(自定义组件)
- XML操作
- [HDU 4263]Red/Blue Spanning Tree[kruskal]
- 数据结构学习笔记——单链表
- 代理模式
- 走进 MongoDB
- UIPickerView组件的使用之国旗联动——使用XIB自定义组件
- [leetcode]101.Symmetric Tree
- 如何学习JAVA
- GreenDao数据库升级解决方案
- git总结
- 关于学习ajax的总结
- 笔记:《高效能人士的七个习惯》第三章 习惯一 积极主动——个人愿景的原则
- NSBundle类的介绍
- Android总结之Activity启动模式