UIKit框架-基础控件Swift版本: 6.UITextField方法/属性详解
在前面, 我们把iOS开发中的三个基础控件都介绍完了, 虽然讲的非常简洁, 但却是我们开发中经常会用到的, 一些在开发中不常用到的, 或者压根就用不上的, 我们就暂时不了解, 有特殊需求的时候我才继续讲解, 好了, 废话少说, 现在让我们来看看最后一个基础框架UITextField:
1.UITxtxField的常用状态
TextField边框的样式
enum UITextBorderStyle : Int {
case None // TextField边框什么都没有, 默认是方角
case Line // TextField边框有一条黑色的实现围着, 默认也是方角的
case Bezel // TextField边框有两条线围着, 形成一定的层次感, 默认也是方角的
case RoundedRect // TextField边框什么都没有, 默认是圆角
}
TextField的快速删除状态
enum UITextFieldViewMode : Int {
case Never // 永远都不打开
case WhileEditing // 在编辑的状态才打开
case UnlessEditing // 在非编辑的状态才打开
case Always // 一直打开
}
TextField的键盘样式
enum UIKeyboardType : Int {
case Default // 显示默认的键盘
case ASCIICapable // 显示所有ASCII表的所有字符
case NumbersAndPunctuation // 数字和标点符号的键盘
case URL // 输入网站所使用的键盘
case NumberPad // 纯数字键盘
case PhonePad // 为了方便输入手机号码所使用的键盘
case NamePhonePad // 为了方便输入名字和电话号码所使用的键盘
case EmailAddress // 面向邮箱所使用的键盘
case DecimalPad // 面向带小数点的数字键盘
case Twitter // 面向Twitter等社交所使用的键盘, 为了方便@和#
case WebSearch // 面向网站所使用的键盘
}
TextField的大写样式
enum UITextAutocapitalizationType : Int {
case None // 不自动大写
case Words // 单个单词首字母大写
case Sentences // 句子首字母大写
case AllCharacters // 全部大写
}
TextField的键盘外观颜色
enum UIKeyboardAppearance : Int {
case Default // 默认是光亮的
case Dark // 设置为黑暗颜色
case Light // 设置为光亮的颜色
}
TextField的Return样式
enum UIReturnKeyType : Int {
case Default // 模样的样式
case Go // 标着有Go的蓝色样式
case Google // 标着Google的蓝色样式, 用于语音搜索, 显示的样式是Search
case Join // 标有Join的蓝色按钮
case Next // 标着有Next的蓝色按钮
case Route // 标着有Route的蓝色按钮
case Search // 标着有Search的蓝色按钮
case Send // 标着有Send的蓝色按钮
case Yahoo // 标着有Yahoo的蓝色按钮, 显示的样式是Search
case Done // 标着有Done的蓝色按钮
case EmergencyCall // 标着有EmergencyCall的蓝色按钮, 紧急呼救的按钮
}
TextField的右边显示图样式
enum UITextFieldViewMode : Int {
case Never // 永远不显示
case WhileEditing // 在编辑的情况下显示
case UnlessEditing // 在非编辑的情况下显示
case Always // 永远显示
}
UITextField的垂直排列方式
enum UIControlContentVerticalAlignment : Int {
case Center // 居中对齐, 默认
case Top // 顶部对齐
case Bottom // 底部对齐
case Fill // 平铺整个TextField的高度
}
UITextField的水平排列方式
enum UIControlContentHorizontalAlignment : Int {
case Center // 居中对齐
case Left // 左对齐, 默认
case Right // 右对齐
case Fill // 平铺整个TextField的宽度
}
2.UITextField的常用方法/属性
常用属性
var textColor: UIColor! // 字体颜色, 默认的字体颜色是黑色
var font: UIFont! // 字体大小, 默认的字体大小是12
var textAlignment: NSTextAlignment // 字体对齐方式, 默认是向左对齐
var borderStyle: UITextBorderStyle // 边框的样式, 默认是None.
var clearButtonMode: UITextFieldViewMode // 快捷清楚的按钮, 默认是不打开的
var placeholder: String? // 提示文本, 默认是nil, 字体颜色是70%的灰
var clearsOnBeginEditing: Bool // 再次编辑时对旧内容进行自动清除, 默认是false
var adjustsFontSizeToFitWidth: Bool // 根据TextField的大小自动缩放字体大小, 默认是false
常用代理方法
optional func textFieldShouldReturn(textField: UITextField) -> Bool // 点击return会结束编辑, 也可以在这里设置取消TextField的第一响应者, 使键盘隐藏.
optional func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool // 可限制文字输入的长度以及特定的字符, 如果返回true, 那么就是可以修改, 如果返回false就不可修改.
3.代码演示
遵守代理协议
class ViewController: UIViewController, UITextFieldDelegate {}
添加UITextField
func myTextField() {
// 1.创建UITextField, 并且设置它的Frame
textField.frame = CGRectMake(100, 200, 200, 100)
// 2.设置UITextField的背景颜色
textField.backgroundColor = UIColor.greenColor()
// 3.设置UITextField的显示样式
textField.borderStyle = UITextBorderStyle.RoundedRect
// 4.设置UITextField的编辑状态, 默认是永远不打开, 这里设置的是在编辑时才打开
textField.clearButtonMode = UITextFieldViewMode.WhileEditing
// 5.设置UITextField的键盘样式
textField.keyboardType = UIKeyboardType.ASCIICapable
// 6.设置UITextField的首字母是否大写
textField.autocapitalizationType = UITextAutocapitalizationType.Sentences
// 7.设置UITextField的键盘外观颜色
textField.keyboardAppearance = UIKeyboardAppearance.Dark
// 8.设置UITextField的return样式
textField.returnKeyType = UIReturnKeyType.Default
// 9.设置UITextField预输入的文字
textField.attributedText = NSAttributedString(string: "ABCDEFG")
// 10.设置UITextField的提示文字
textField.placeholder = "请输入您的名字"
// 11.设置UITextField的代理对象
textField.delegate = self
// 12.设置UITextField内容的垂直对齐方式, 默认是center
textField.contentVerticalAlignment = UIControlContentVerticalAlignment.Top
// 13.再次编辑时对旧内容进行自动清除, 默认是false
textField.clearsOnBeginEditing = true
// 14.根据TextField的大小自动缩放字体大小, 默认是false
textField.adjustsFontSizeToFitWidth = true
// 15.添加到父视图
self.view.addSubview(textField)
}
实现代理方法
func textFieldShouldReturn(textField: UITextField) -> Bool {
// 取消第一响应者
textField.resignFirstResponder()
// 返回true
return true
}
在ViewDidload实现
override func viewDidLoad() {
super.viewDidLoad()
self.myTextField()
}
PS: UITExtField不会自动换行的, 所以我们只可能限制用户所输入多少个字符, 如果需要自动换行, 那就需要去了解UITextVIew.
4.最终效果
好了, 这次就讲到这里, 下次我们继续