UIKit框架-基础控件Swift版本: 6.UITextField方法/属性详解

前端之家收集整理的这篇文章主要介绍了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,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.最终效果




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

猜你在找的Swift相关文章