UIKit框架-高级控件Swift版本: 5.UITextView方法/属性详解

来源:互联网 发布:淘宝总显示网络异常 编辑:程序博客网 时间:2024/06/06 14:03

前面我们讲完了iOS中的两个表格控件, 现在让我们继续往下看:


1.UITextView常用属性

// 1.设置 UITextView 的文字var text: String!// 2.设置 UITextView 的字体大小var font: UIFont!// 3.设置 UITextView 的字体颜色var textColor: UIColor!// 4.设置 UITextView 的字体排序, 默认是从左往右var textAlignment: NSTextAlignment// 5.设置 UITextView 是否可编辑var editable: Bool// 6.设置 UITextView 是否可以点击var selectable: Bool// 7.设置 UITextView 的超文本样式var dataDetectorTypes: UIDataDetectorTypes// 8.设置 UITextView 在长按下是否可以选择不同的文字样式var allowsEditingTextAttributes: Bool// 9.设置 UITextView 的文本容器边界var textContainerInset: UIEdgeInsets// 10.设置 UITextView 是否点击编辑时把旧内容全选    var clearsOnInsertion: Bool

2.UITextView 的代理方法

// 1.该方法是用来设置 UITextView 是否可以编辑    optional func textViewShouldBeginEditing(textView: UITextView) -> Bool// 2.该方法是用来设置 UITextView 是否可以结束编辑    optional func textViewShouldEndEditing(textView: UITextView) -> Bool// 3.该方法是用来设置 UITextView 在开始编辑时调用    optional func textViewDidBeginEditing(textView: UITextView)// 4.该方法是用来设置 UITextView 在结束编辑时调用    optional func textViewDidEndEditing(textView: UITextView)// 5.该方法是用来设置 UITextView 内容是否可更改    optional func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool// 6.该方法是用来设置 UITextView 内容更改后时调用    optional func textViewDidChange(textView: UITextView)// 7.该方法是用来选择需要更改内容的 UITextView    optional func textViewDidChangeSelection(textView: UITextView)

3.代码演示

首先得遵守一下代理协议

class ViewController: UIViewController, UITextViewDelegate {}

自定义UITextView

    func myTextView() {        // 1.自定义 UITextView 以及文本容器的大小        var textView = UITextView(frame: CGRectMake(0, 200, self.view.frame.width, 200))        // 2.设置 UITextView 的文本内容        textView.text = "http://www.baidu.com\nabcdefghijk"        // 3.设置 UITextView 的文本颜色        textView.textColor = UIColor.redColor()        // 4.设置 UITextView 的文字大小        textView.font = UIFont.systemFontOfSize(30)        // 5.设置 UITextView 的文字对齐方式        textView.textAlignment = NSTextAlignment.Center        // 6.设置 UITextView 是否可编辑        textView.editable = true        // 7.设置 UITextView 是否可以选中        textView.selectable = true        // 8.设置 UITextView 的背景颜色        textView.backgroundColor = UIColor.greenColor()        // 9.设置 UITextView 的超文本样式        textView.dataDetectorTypes = UIDataDetectorTypes.All        // 10.设置 UITextView 的文本长按时是否可以更改为粗体, 斜体或者斜体下划线样式        textView.allowsEditingTextAttributes = true        // 11.设置 UITextView 的文本容器边界        textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10)        // 12.设置 UITextView 是否点击编辑时把旧内容全选        textView.clearsOnInsertion = true        // 13.设置 UITextView 的代理对象        textView.delegate = self        // 14.添加到 self.view        self.view.addSubview(textView)    }

实现代理方法

    // 1.该方法是用来设置 UITextView 是否可以编辑    func textViewShouldBeginEditing(textView: UITextView) -> Bool {        println("正在开始编辑")        return true    }    // 2.该方法是用来设置 UITextView 是否可以结束编辑    func textViewShouldEndEditing(textView: UITextView) -> Bool {        println("正在结束编辑")        return true    }    // 3.该方法是用来设置 UITextView 在开始编辑时调用    func textViewDidBeginEditing(textView: UITextView) {        println("开始编辑")    }    // 4.该方法是用来设置 UITextView 在结束编辑时调用    func textViewDidEndEditing(textView: UITextView) {        println("结束编辑")    }    // 5.该方法是用来设置 UITextView 内容是否可更改    func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {        println("正在更改内容")        return true    }    // 6.该方法是用来设置 UITextView 内容更改后时调用    func textViewDidChange(textView: UITextView) {        println("内容已经改变")    }    // 7.该方法是用来选择需要更改内容的 UITextView    func textViewDidChangeSelection(textView: UITextView) {        println("已经选择要更改内容的文本框")    }

在 viewDidLoad 调用

    override func viewDidLoad() {        super.viewDidLoad()        self.myTextView()    }

4.最终效果

1
1
2
2
3
3
4
4

由于我在 Storyboard 中自己添加了一个 TextField, 所以效果会有些不一样.

PS: UITextView 是继承于UIScrollView, UITextInput, UIKeyInput, UITextInputTraits, 所以它们的方法和属性, UITextView 都是可以使用的


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

0 0