遵守<UIPickerViewDataSource, UIPickerViewDelegate>
//初始化
- (UIPickerView *)pickerView
{
if (_pickerView == nil) {
//初始化一个pickerView
_pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)];
//设置背景色
//设置代理
_pickerView.delegate = self;
_pickerView.dataSource = self;
//默认显示当前的下标
// [_pickerView selectRow:3 inComponent:0 animated:NO];
}
return _pickerView;
}
//返回文字
- (NSString *)getCurrentSelectedInfo
{
return string;
}
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setupUI];
}
return self;
}
- (void)setupUI
{
// 加载数据
arrayData = [NSMutableArray arrayWithObjects:@"请选择性别",@"男",@"女", nil];
[self addSubview: self.pickerView];
}
//返回有几列
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
//几行
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return arrayData.count;
}
//返回指定列,行的高度,就是自定义行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 40.0f;
}
//返回指定列的宽度
- (CGFloat) pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
if (component==0) {//iOS6边框占10+10
return self.frame.size.width/2;
} else if(component==1){
return self.frame.size.width/2;
}
return self.frame.size.width/2;
}
//显示的标题
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [arrayData objectAtIndex:row];
}
//设置显示的Laber
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
//设置分割线的颜色
for(UIView *singleLine in pickerView.subviews)
{
if (singleLine.frame.size.height < 1)
{
singleLine.backgroundColor = colorText;
}
}
UILabel *genderLabel = [UILabel new];
genderLabel.textAlignment = NSTextAlignmentCenter;
genderLabel.text = arrayData[row];
genderLabel.adjustsFontSizeToFitWidth = YES;
if (selectedRow == row) {
genderLabel.textColor = colorButton;
}else{
genderLabel.textColor = colorText;
}
return genderLabel;
}
//被选择的行
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
selectedRow = row;
[self.pickerView reloadAllComponents];//重点
string =[arrayData objectAtIndex:row];
}
UIPickerView
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、UIPickerView(拾取器)的使用 1、UIPickerView控件生成的表格可以提供滚动的轮盘 ...