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
2
3
4
由于我在 Storyboard 中自己添加了一个 TextField, 所以效果会有些不一样.
PS: UITextView 是继承于UIScrollView, UITextInput, UIKeyInput, UITextInputTraits, 所以它们的方法和属性, UITextView 都是可以使用的
好了这次我们就讲到这里, 下次我们继续