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.最终效果

1
2
3


好了, 这次就讲到这里, 下次我们继续

posted @ 2015-04-06 15:16  背着吉他去流浪  阅读(506)  评论(0编辑  收藏  举报