UIPickView和UIDatePicker(了解)

一、UIPickViewUIDatePicker(了解)

1.UIPickView什么时候用?

 

通常在注册模块,当用户需要选择一些东西的时候,比如说城市,往往

弹出一个PickerView给他们选择。老虎机效果

 

2.UIPickView常见用法,演示实例程序

 

1>独立的,没有任何关系 =>菜单系统

2>相关联的,下一列和第一列有联系=>省会城市选择

3>图文并帽,=>国旗选择。

 

3.UIPickView

page1image3288

4.UIDatePicker什么时候用? 当用户选择日期的时候,一般弹出一个UIDatePicker给用户选择。

5.UIDatePickerios6ios7的区别

page1image4304

 

 

 

 

*************************************************笔记*****************************************************

**********************************************************************************************************

注册界面

 -注册界面

.UITextFieldDelegate

 

 是否允许改变文本框的文字

 是否允许用户输入文字

 作用:拦截用户的输入

- (BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string

{

    return NO;

}

 

 是否允许开始编辑

 允许编辑文本框

- (BOOL)textFieldShouldBeginEditing:(UITextField*)textField

 

 是否允许文本框结束编辑

- (BOOL)textFieldShouldEndEditing:(UITextField*)textField

 

 

.自定义键盘

键盘由文本框inputView属性决定

 

.KVC底层实现

 

 setValuesForKeysWithDictionary底层实现

 

  利用KVC字典转模型,

[flagsetValuesForKeysWithDictionary:dict];

 

 1.遍历字典中的所有key

[dictenumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL*stop) {

     2.给模型的属性赋值,利用KVC,把字典中的key当做模型的属性名使用,字典中的值传递给模型的属性.

    [flagsetValue:obj forKey:key];

     name -> icon

     KeyPath:模型中的属性名

     属性的值

    

           [flag setValue:dict[@"name"]forKey:@"name"];

           [flag setValue:dict[@"icon"]forKey:@"icon"];

}];

 

 

 

 setValue:forKey:底层实现

 给模型中的icon属性赋值

 [flag setValue:dict[@"icon"]forKey:@"icon"];

 

 1.首先去寻找模型中有木有setIcon:方法,直接调用setIcon:方法,[flagsetIcon:dict[@"icon"]]

 2.接着寻找模型中有没有icon的属性名,如果有,就直接赋值icon = dict[@"icon"]

 

 3.接着寻找模型中有没有_icon的属性名,如果有,就直接赋值_icon = dict[@"icon"]

 

 4.找不到,直接报错,setValue:forUndefinedKey:

 

 

 

.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];

 

代理方法:

#pragmamark - UIPickerViewDataSource

# 返回有多少列

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    

    return 3;

}

 

# 返回第component列有多少行

-(NSInteger)pickerView:(UIPickerView *)pickerViewnumberOfRowsInComponent:(NSInteger)component

{

    return 3;

}

 

#pragmamark - UIPickerViewDelegate

# 返回每一列行高

-(CGFloat)pickerView:(UIPickerView *)pickerViewrowHeightForComponent:(NSInteger)component;

 

# 设置pickerView内容

# 返回第component列第row行的标题

- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)rowforComponent:(NSInteger)component

{

    if (component == 1 && row == 1) {

       return @"b";

    }

    return @"a";

}

# NSAttributedString:属性字符串,富文本:颜色,字体,阴影,空心,图文混排

- (NSAttributedString*)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)rowforComponent:(NSInteger)component

{

 

}

 

# 返回每一行的控件

- (UIView*)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)rowforComponent:(NSInteger)component reusingView:(UIView *)view

{

    return [UIButtonbuttonWithType:UIButtonTypeContactAdd];

}

 

# 选中某一行的时候调用

- (void)pickerView:(UIPickerView *)pickerViewdidSelectRow:(NSInteger)row inComponent:(NSInteger)component

{

    NSLog(@"%ld %ld",component,row);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值