UIDatePicker

1.常见属性

/*

样式

UIDatePickerModeTime,时间

UIDatePickerModeDate,日期

UIDatePickerModeDateAndTime 日期 + 时间

*/

@property(nonatomic) UIDatePickerMode datePickerMode;

/*

区域

中国:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]

*/

@property(nonatomic,retain) NSLocale      *locale;

2.事件监听

1> 因为它继承自UIControl,所以跟按钮一样监听

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

2> 事件类型:UIControlEventValueChanged

四、UIPickerView

1.需要靠dataSource和delegate来显示数据

@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;

@property(nonatomic,assign) id<UIPickerViewDelegate>   delegate;

2.常见数据源和代理方法

1> 数据源方法

// 一共有多少列

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;

// 第component列有多少行

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

2> 代理方法

// 第component列第row行显示怎样的文字

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;

// 第component列第row行显示怎样的view

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;

// 选中了第component列第row行就会调用

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

3.常见方法

1> 是否显示“选中指示器”

@property(nonatomic) BOOL showsSelectionIndicator;

2> 刷新数据(重新调用数据源和代理的方法来显示数据)

- (void)reloadAllComponents; // 刷新所有的列

- (void)reloadComponent:(NSInteger)component; // 只刷新第component列

3> 通过代码选中第component列第row行

- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;

4> 获得第component列所选中的行号

- (NSInteger)selectedRowInComponent:(NSInteger)component;

五、UITextField

1.常见属性

1> 键盘

@property (readwrite, retain) UIView *inputView;

2> 键盘顶部的工具条

@property (readwrite, retain) UIView *inputAccessoryView;

3> 代理

@property(nonatomic,assign) id<UITextFieldDelegate> delegate;

2.常见方法

1> 叫出键盘

- (BOOL)becomeFirstResponder;

2> 退出键盘

- (BOOL)resignFirstResponder;

3.常见代理方法

1> 如果返回NO,代表文本框不能编辑、不能弹出键盘

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

2> 如果返回NO,代表禁止改变文本框的文字(不能增加、删除文字)

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

3> 点击了键盘右下角的按钮就会调用(return key)

- (BOOL)textFieldShouldReturn:(UITextField *)textField;

六、UIButton的状态

UIControlStateNormal  // 默认、普通

UIControlStateHighlighted // 高亮(当用户长按的时候达到这种状态)

UIControlStateDisabled // 不可用(这种状态下的按钮不能处理任何点击事件,enabled = NO的时候就能达到这种状态)

// 当切换状态的时候,按钮就会显示对应状态的背景图片、小图片、文字、文字颜色

七、控件的封装

1.为什么封装?

1> 重用某个常用的功能

2> 屏蔽某个功能的实现细节

2.封装的步骤

1> 自定义一个View(新建一个继承UIView的类)

2> 如果控件内部的内容是固定的,可以用一个xib文件来描述所封装控件内部的细节

3> 所封装控件内部的事件,应该通过代理传递出去

* 当所封装控件内部发生了一些事情,应该通知代理,代理得知内部的事件后,就可以在代理方法中实现想做的事情

最新文章

  1. Intellij IDEA 常用快捷键
  2. 我的第一个web应用开发搭建-环境配置
  3. 基础学习day10--异常、包
  4. 字符串数组元素排列与组合的Java递归实现
  5. 强势解决:windows 不能在本地计算机中起动Tomcat参考特定错误代码1
  6. 401 Palindromes(回文词)
  7. 1000万条数据导入mysql
  8. 《think in python》学习-4
  9. The Suspects(并查集求节点数)
  10. linux shell 执行多个命令的方法
  11. 游戏开发之UE4添加角色到场景中
  12. Grails笔记三:完整的文件上传实例
  13. 用户空间网络提升 NFV 的性能
  14. redis bind连不上的坑
  15. 011_python常用查询
  16. 利用Qt Designer 进行 空间提升propomotion 的时候异常: NO such file or directory
  17. JS实现选择排序
  18. reconnecting-websocket.js
  19. 我对CopyOnWrite的思考
  20. day0315 迭代器

热门文章

  1. SQL&nbsp;Server&nbsp;2008&nbsp;R2&nbsp;跟踪标志
  2. 【Leetcode】Partition List (Swap)
  3. Java-如何去掉JFrame上的最大化最小化和关闭按钮(转)
  4. ios 类似的效果淘宝商品详细页面
  5. UI设计规范
  6. jquery animate的递归调用
  7. 使用XML向SQL Server 2005批量写入数据&mdash;&mdash;一次有关XML时间格式的折腾经历
  8. bzoj 2437 [Noi2011]兔子和鸡蛋 [二分图匹配]
  9. JavaWeb框架的基石
  10. JavaScript中五种常见运算符