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的一些总结,如有写得不准确或不完善的地方,还请指正补充,谢谢!!!

posted @ 2016-09-18 16:45  Cassie语思菲菲  阅读(164)  评论(0编辑  收藏  举报