• iOS界面设计之基础控件的学习 --- UITextField


    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable 、 UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的学习:

    一、定义一个输入控件

     // 输入控件
    @property (nonatomic,strong) UITextField *textField;

    二、在viewDidLoad中实例化

    1 - (void)viewDidLoad {
    2     [super viewDidLoad];
    3     // 实例化输入框
    4     _textField = [[UITextField alloc]initWithFrame:CGRectMake(40, 100, 295, 40)];
    5     // 设置textField的属性
    6     [self propertyOfTextField:_textField];
    7     // 添加到父视图
    8     [self.view addSubview:_textField];
    9 }

    三、UITextField的常用属性设置

     1 #pragma mark - UITextField属性设置
     2 - (void)propertyOfTextField:(UITextField *)textField {
     3     // 设置边框样式
     4     textField.borderStyle = UITextBorderStyleRoundedRect;
     5     // 设置占位符
     6     textField.placeholder = @"占位符";
     7     // 设置光标的颜色
     8     textField.tintColor = [UIColor redColor];
     9     // 设置输入框背景颜色
    10     textField.backgroundColor = [UIColor lightGrayColor];
    11     // 设置text字体的颜色
    12     textField.textColor = [UIColor orangeColor];
    13     // 清除模式
    14     textField.clearButtonMode = UITextFieldViewModeWhileEditing;
    15     // 是否安全输入
    16     textField.secureTextEntry = NO;
    17     // 设置字体大小
    18     textField.font = [UIFont systemFontOfSize:24];
    19     // 文本对齐方式
    20     textField.textAlignment = NSTextAlignmentLeft;
    21     // 是否纠错(即:联想)
    22     textField.autocorrectionType = UITextAutocorrectionTypeNo;
    23     // 首字母是否大写
    24     textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
    25     // 再次编辑时是够清空
    26     textField.clearsOnBeginEditing = YES;
    27     // 设置键盘样式
    28     textField.keyboardAppearance = UIKeyboardAppearanceDark;
    29     // 设置return按钮的样式
    30     textField.returnKeyType = UIReturnKeySearch;
    31     // 设置代理
    32     textField.delegate = self;
    33 }

    四、UITextFieldDelegate 方法

     1 #pragma mark - <UITextFieldDelegate> method
     2 // 1. 是否允许开始编辑
     3 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
     4     return YES;
     5 }
     6 
     7 // 2. 已经开始编辑时触发
     8 - (void)textFieldDidBeginEditing:(UITextField *)textField {
     9     
    10 }
    11 
    12 // 3. 是否允许结束编辑
    13 - (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    14     return YES;
    15 }
    16 
    17 // 4. 已经结束编辑是触发
    18 - (void)textFieldDidEndEditing:(UITextField *)textField {
    19     
    20 }
    21 
    22 // 5. 是否允许改变文本输入框字符的长度  可以得到用户输入的字符
    23 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    24     
    25     // 可在限制用户输入字符的长度以及敏感字符的输入等
    26     return YES;
    27 }
    28 
    29 // 6. 是否允许清除
    30 - (BOOL)textFieldShouldClear:(UITextField *)textField {
    31     return YES;
    32 }
    33 
    34 // 7. 是否响应return键
    35 - (BOOL)textFieldShouldReturn:(UITextField *)textField {
    36     
    37     // 用户点击键盘上的return键会触发该方法,所以可在此处完成点击return的一些操作
    38     return YES;
    39 }

    五、收起键盘的方法:

    1  // 收键盘1 -- 文本失去第一响应
    2     [textField resignFirstResponder];
    3  // 收键盘2  -- 界面停止编辑
    4     [self.view endEditing:YES];

    六、拓展:除了上述一些常用的属性外,还有其他属性也需要了解

    • minimumFontSize :自动缩小显示的最小字体
    • adjustsFontSizeToFitWidth:是否自动调整字体大小
    • contentVerticalAlignment:垂直对齐方式
    • inputAccessoryView:输入附属视图
    • inputView:输入视图(键盘视图)

    有些时候要自定义键盘的话,就可以给inputAccessoryView 和inputView两个属性赋值,如果是自定义UITextField,则需要重写这两个属性的getter方法。

    以上是我对UITextField的一些总结,如有写得不准确或不完善的地方,还请指正补充,谢谢!!!

  • 相关阅读:
    代理模式
    建造者模式
    开源版本 hadoop-2.7.5 + apache-hive-2.1.1 + spark-2.3.0-bin-hadoop2.7整合使用
    Phoenix映射HBase数据表
    使用sqoop将mysql中表导入hive中报错
    数据库索引原理及优化(转载)
    6.JAVA知识点归纳整理
    5.hbase表新增数据同步之add_peer
    mongodb分布式集群搭建
    4.HBASE数据迁移方案(之snapshot):
  • 原文地址:https://www.cnblogs.com/ciciCassie/p/5882167.html
Copyright © 2020-2023  润新知