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

前面我们讲完了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 都是可以使用的


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

posted @ 2015-04-19 02:15  背着吉他去流浪  阅读(716)  评论(1编辑  收藏  举报