iOS界面设计之基础控件的学习 --- UITextField
学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable 、 UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的学习:
一、定义一个输入控件
// 输入控件
@property (nonatomic,strong) UITextField *textField;
二、在viewDidLoad中实例化
- (void)viewDidLoad {
[super viewDidLoad];
// 实例化输入框
_textField = [[UITextField alloc]initWithFrame:CGRectMake(, , , )];
// 设置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:];
// 文本对齐方式
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的一些总结,如有写得不准确或不完善的地方,还请指正补充,谢谢!!!
iOS界面设计之基础控件的学习 --- UITextField的更多相关文章
- 【Android开发学习笔记】【第四课】基础控件的学习
通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...
- winform基础控件-例子学习
1.如图实现整数计算器 ComboBox控件: Items属性:添加集合中的项. this.comoper.Items.AddRange(new object[] { "+", & ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- [iOS基础控件 - 7.0] UIWebView
A.基本使用 1.概念 iOS内置的浏览器控件 Safari浏览器就是通过UIWebView实现的 2.用途:制作简易浏览器 (1)基本请求 创建请求 加载请求 (2)代理监听webView加载, ...
- React Native环境搭建以及几个基础控件的使用
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...
- iOS开发UI篇—UITableview控件使用小结
iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...
- WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...
- 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725 一. 分段控件 (UISegmentedControl) 控件展 ...
- UWP&WP8.1 基础控件—TextBlock和TextBox
TextBlock:文本展示控件,有着强大的功能 TextBox:文本输入控件. 这两个控件是最为常用的基础控件. TextBlock 基础用法: 打开一个UWP项目,在XAML设计页面你可以从工具箱 ...
随机推荐
- 理解 ajax、fetch和axios
背景 ajax fetch.axios 优缺点 ajax基于jquery,引入时需要引入庞大的jquery库,不符合当下前端框架,于是fetch替代了ajax 由于fetch是比较底层,需要我们再次封 ...
- cocos2d-x安装
mac 安装2.2.6为例 1.进入cocos2d-x/tools/project-creator/ 2.输入 python create_project.py -project HelloWorld ...
- 20155212 2016-2017-2 《Java程序设计》第10周学习总结
20155212 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 密码学基础 ava API支持多种加密算法.如MessageDigest类,可以构建MD5 ...
- 20155305乔磊2016-2017-2《Java程序设计》第一周学习总结
学习考核方式后感 老师对于成绩的获得有很多细节的地方,获得高分很不容易,考核次数也很多,100分分为课堂考核,实验,团队项目,老师对我们的要求可以说非常的严格,我也为有一个要求严格的老师感到幸运荣幸. ...
- 20155336 2016-2017-2《Java程序设计》课程总结
20155336虎光元<Java程序设计>课程总结 一.每周作业 第一周学习总结:http://www.cnblogs.com/hxl681207/p/6457919.html 第二周学习 ...
- 20145207 《Java 程序设计》实验三 (敏捷开发与XP实践)实验报告
<Java 程序设计>实验三 (敏捷开发与XP实践)实验报告 目录 改变 敏捷开发与XP实践实验要求 实验成果 课后思考 改变 修改了之前仅仅是贴了图片,连代码都没粘的状态.增加了自己的思 ...
- 20145226夏艺华 《Java程序设计》预备作业3
安装虚拟机 上学期开学的时候就安装了Linux虚拟机,由于我的是Mac OS,所以和windows下的安装有所不同. 我使用的是VirtualBoxVM虚拟机,稳定性还不错,需要的同学可以从https ...
- Tomcat安装部署和安全加固优化以及反向代理应用
1.Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同 ...
- MYSQL查看当前正在使用的数据库命令
select database();
- Spring学习(十二)-----Spring Bean init-method 和 destroy-method实例
实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy- ...