1.UIPickView什么时候用?
• 通常在注册模块,当用户需要选择一些东西的时候,比如说城市,往往
弹出一个PickerView给他们选择。 • 老虎机效果
2.UIPickView常见用法,演示实例程序
1>独立的,没有任何关系 =>菜单系统
2>相关联的,下一列和第一列有联系=>省会城市选择
3>图文并帽,=>国旗选择。
image.png
image.png
UIDatePicker
创建一个UIDatePicker
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
设置日期模型
datePicker.datePickerMode = UIDatePickerModeDate;
设置地区,zh:中国
datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"];
监听UIDatePicker的选中的日期
[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];
代理方法:
#pragma mark - UIPickerViewDataSource
返回有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
返回第component列有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return 3;
}
#pragma mark - UIPickerViewDelegate
返回每一列行高
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
设置pickerView内容
返回第component列第row行的标题
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 1 && row == 1) {
return @"b";
}
return @"a";
}
NSAttributedString:属性字符串,富文本:颜色,字体,阴影,空心,图文混排
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component
{
}
返回每一行的控件
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
return [UIButton buttonWithType:UIButtonTypeContactAdd];
}
选中某一行的时候调用
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"%ld %ld",component,row);
}
网友评论