文本視圖也是輸入控件,與文本框不一樣的是,文本視圖能夠讓用戶輸入多行,如圖2.23所示。在此圖中字符串「說點什麼吧」這一區域就是使用文本視圖實現的,用戶能夠在此區域中寫大量的文本內容。通常文本框視圖使用UITextView實現。ios
圖2.23 寫日誌swift
【示例2-9】如下將使用文本視圖實現QQ中寫說說並發表的功能。具體的操做步驟以下:併發
(1)建立一個Single View Application模板類型的項目,命名爲UITextView。ide
(2)打開Main.storyboard文件,對主視圖進行設計,效果如圖2.24所示。spa
須要添加的視圖以及對它們的設置如表2-6所示。.net
表2-6 對視圖對象的設置設計
圖2.24 主視圖的效果日誌
(3)打開ViewController.swift文件,編寫代碼,此代碼實現的功能是寫說說並發表的功能。代碼以下:orm
import UIKit對象
class ViewController: UIViewController,UITextViewDelegate {
let wtv=UITextView(frame: CGRectMake(0, 97, 375, 232))
let rtv=UITextView(frame: CGRectMake(0, 372, 375, 232))
let label=UILabel(frame: CGRectMake(3, 105, 123, 21))
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.addSubview(wtv) //添加文本視圖
label.text="說點什麼吧..." //設置標籤的文本內容
label.enabled=false //禁用標籤
label.backgroundColor=UIColor.clearColor()
wtv.delegate=self //設置文本視圖的委託
self.view.addSubview(label)
self.view.addSubview(rtv)
rtv.backgroundColor=UIColor.clearColor()
rtv.editable=false //禁用文本視圖
rtv.hidden=true //隱藏文本視圖
}
//監聽文字改變的消息
func textViewDidChange(textView: UITextView) {
//判斷文本視圖的內容是否爲空
if(wtv.text==""){
label.text="說點什麼吧..."
}else{
label.hidden=true
}
}
//隱藏鍵盤
@IBAction func cancel(sender: AnyObject) {
wtv.resignFirstResponder()
}
//發表說說,隱藏鍵盤
@IBAction func issue(sender: AnyObject) {
rtv.hidden=false
rtv.text=wtv.text //設置文本視圖的文本內容
wtv.resignFirstResponder()
}
……
}
運行程序後,會看到如圖2.25所示的效果。當開發者輕拍文本視圖後,會自動彈出鍵盤,如圖2.26所示。
圖2.25 運行效果 圖2.26 運行效果
當開發者在文本視圖中輸入內容後,字符串「說點什麼吧…」就會自動消失,如圖2.27所示。當輕拍發表按鈕後,在文本視圖中寫入的內容就會顯示在另外一個文本視圖中,而且鍵盤消失,如圖2.28所示。
圖2.27 運行效果 圖2.28 運行效果
本文選自:iOS 9應用開發基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!