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设计页面你可以从工具箱 ...
随机推荐
- linux几个重要的组合键
我们在用Windows系统时,有没有感觉快键键让我们工作更有效率,在Linux系统中仍有很好用的快捷键,这些快捷键可以辅助我们进行指令的编写与程序的中断呢,下面介绍几个经常用到的快捷键. 一.Tab- ...
- Angular 7 版本
Angular 7 版本 这是跨整个平台的主要版本,更新包括核心框架,Angular Material和CLI. 如何更新到v7 可以访问update.angular.io以获取有关更新应用程序的详细 ...
- 批量复制windows文件夹下所有文件名
第一步,打开文件夹 第二步,在该文件夹下新建一个txt文件,然后将“.txt”后缀名修改为“.bat” txt文件内容“DIR *.* /B >LIST.TXT” 第三步,双击“.bat”,直接 ...
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...
- 20155310 2016-2017-2 《Java程序设计》第十周学习总结
20155310 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 •网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就 ...
- 20145226夏艺华 《Java程序设计》第7&8周学习总结、实验一
[实验一]http://www.cnblogs.com/bestixyh/p/6358734.html [第7周]http://www.cnblogs.com/bestixyh/p/6380475.h ...
- Easyui 控件的初始化方法
问题: Easyui的控件在初始化的时候有两种方式: 页面指定class属性 js里初始化该id为easyui的控件 那么问题是: 如果页面不指定class属性,只是使用js初始化的话,会导致无法用控 ...
- treegrid -表格树异步加载
问题: 机构维护时,前端框架用的是easyui,如果同步全加载会出现页面延迟严重,影响用户体验 解决: 机构逐层加载,点击后加载 逐层加载会出现一个问题:子节点只有点击后才能加载子集 所以开始为叶子节 ...
- youtube高清视频下载方法
youtube下载方法有多种, 但都不支持1080P以上的高清下载, 今天找到一种支持1080P的, 记录一下 步骤1: 百度搜: Dooseen tubedown 下载该软件, 并安装, 一直下一步 ...
- 面试时让你说一个印象最深的bug,该怎么回答
其实,面试官并不关心你描述的这个bug是否真的有价值,或有多曲折离奇?他只是: * 了解你平时工作中的测试能力 所以,这就要求的你平时工作中遇到bug时试着自己去定位,定位bug的过程远比你的单纯的执 ...