zoukankan      html  css  js  c++  java
  • IOS中UIDatePicker

    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.需要靠dataSourcedelegate来显示数据

    @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> 所封装控件内部的事件,应该通过代理传递出去

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

    如果你错过了一天,那么你就真的错过了一天……ues.hk
  • 相关阅读:
    [ERR] Node 10.211.55.8:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
    PAT A1137 Final Grading (25 分)——排序
    PAT A1136 A Delayed Palindrome (20 分)——回文,大整数
    PAT A1134 Vertex Cover (25 分)——图遍历
    PAT A1133 Splitting A Linked List (25 分)——链表
    PAT A1132 Cut Integer (20 分)——数学题
    PAT A1130 Infix Expression (25 分)——中序遍历
    PAT A1142 Maximal Clique (25 分)——图
    PAT A1141 PAT Ranking of Institutions (25 分)——排序,结构体初始化
    PAT A1140 Look-and-say Sequence (20 分)——数学题
  • 原文地址:https://www.cnblogs.com/myios/p/3670749.html
Copyright © 2011-2022 走看看