您的位置:首页 > 产品设计 > UI/UE

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

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


一、定义一个输入控件



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



二、在viewDidLoad中实例化



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



三、UITextField的常用属性设置



#pragma mark - UITextField属性设置
- (void)propertyOfTextField:(UITextField *)textField {
// 设置边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;
// 设置占位符
textField.placeholder = @"占位符";
// 设置光标的颜色
textField.tintColor = [UIColor redColor];
// 设置输入框背景颜色
textField.backgroundColor = [UIColor lightGrayColor];
// 设置text字体的颜色
textField.textColor = [UIColor orangeColor];
// 清除模式
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
// 是否安全输入
textField.secureTextEntry = NO;
// 设置字体大小
textField.font = [UIFont systemFontOfSize:24];
// 文本对齐方式
textField.textAlignment = NSTextAlignmentLeft;
// 是否纠错(即:联想)
textField.autocorrectionType = UITextAutocorrectionTypeNo;
// 首字母是否大写
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
// 再次编辑时是够清空
textField.clearsOnBeginEditing = YES;
// 设置键盘样式
textField.keyboardAppearance = UIKeyboardAppearanceDark;
// 设置return按钮的样式
textField.returnKeyType = UIReturnKeySearch;
// 设置代理
textField.delegate = self;
}



四、UITextFieldDelegate 方法



#pragma mark - <UITextFieldDelegate> method
// 1. 是否允许开始编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
}

// 2. 已经开始编辑时触发
- (void)textFieldDidBeginEditing:(UITextField *)textField {

}

// 3. 是否允许结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
return YES;
}

// 4. 已经结束编辑是触发
- (void)textFieldDidEndEditing:(UITextField *)textField {

}

// 5. 是否允许改变文本输入框字符的长度  可以得到用户输入的字符
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

// 可在限制用户输入字符的长度以及敏感字符的输入等
return YES;
}

// 6. 是否允许清除
- (BOOL)textFieldShouldClear:(UITextField *)textField {
return YES;
}

// 7. 是否响应return键
- (BOOL)textFieldShouldReturn:(UITextField *)textField {

// 用户点击键盘上的return键会触发该方法,所以可在此处完成点击return的一些操作
return YES;
}



五、收起键盘的方法:



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



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



minimumFontSize :自动缩小显示的最小字体

adjustsFontSizeToFitWidth:是否自动调整字体大小

contentVerticalAlignment:垂直对齐方式

inputAccessoryView:输入附属视图

inputView:输入视图(键盘视图)

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

以上是我对UITextField的一些总结,如有写得不准确或不完善的地方,还请指正补充,谢谢!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐