• 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
  • 相关阅读:
    《实战Java高并发程序设计》读书笔记一
    《实战Java高并发程序设计》读书笔记二
    SprintBoot学习(三)
    SprintBoot学习(二)
    SprintBoot学习(一)
    jQuery学习(三)
    jQuery学习(二)
    jQuery学习(一)
    利用activeX控件在网页里自动登录WIN2003远程桌面并实时控制
    上传读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/myios/p/3670749.html
Copyright © 2020-2023  润新知