1.聲明控件UITextField
override func viewDidLoad() {
super.viewDidLoad()
//定義控件x:30 y:100 width:300 height:40
let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40))
//由于背景是白色的弊予,所以設(shè)置背景色才能看得見textField
textField.backgroundColor = UIColor.gray
//將控件添加到子視圖中
self.view.addSubview(textField)
}
運(yùn)行結(jié)果如下圖所示:2.TextField邊框樣式环揽,默認(rèn)無邊框
- UITextBorderStyle.none:無邊框
- UITextBorderStyle.line:直線邊框
- UITextBorderStyle.roundedRect:圓角矩形邊框
- UITextBorderStyle.bezel:邊線+陰影
例如:
override func viewDidLoad() {
super.viewDidLoad()
//定義控件x:30 y:100 width:300 height:40
let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40))
//設(shè)置邊框樣式 邊線+陰影
textField.borderStyle = .bezel
//將控件添加到子視圖中
self.view.addSubview(textField)
}
效果如下:3.設(shè)置邊框顏色肛炮、線寬塔拳、圓角半徑
//需現(xiàn)將masksToBounds設(shè)置為true
textField.layer.masksToBounds = true
textField.layer.borderColor = UIColor.blue.cgColor
textField.layer.borderWidth = 2.0
textField.layer.cornerRadius = 5.0
效果如下:4.文本框提示文字以及屬性設(shè)置
textField.placeholder = "這是提示文本"http://提示文本
//當(dāng)文字超出文本框?qū)挾葧r(shí),自動(dòng)調(diào)整文字大小窜管,默認(rèn)是以省略號(hào)代替
textField.adjustsFontSizeToFitWidth = true
textField.minimumFontSize=10 //最小可縮小的字號(hào)
效果如下:5.設(shè)置水平/垂直對(duì)齊方式
/** 水平對(duì)齊 **/
textField.textAlignment = .right //水平右對(duì)齊
textField.textAlignment = .center //水平居中對(duì)齊
textField.textAlignment = .left //水平左對(duì)齊
/** 垂直對(duì)齊 **/
textField.contentVerticalAlignment = .top //垂直向上對(duì)齊
textField.contentVerticalAlignment = .center //垂直居中對(duì)齊
textField.contentVerticalAlignment = .bottom //垂直向下對(duì)齊
6.設(shè)置背景圖片
textField.borderStyle = .none //先要去除邊框樣式
textField.background = UIImage(named:"bgImg");
7.設(shè)置清除按鈕
textField.clearButtonMode = .whileEditing //編輯時(shí)出現(xiàn)清除按鈕
textField.clearButtonMode = .unlessEditing //編輯時(shí)不出現(xiàn)项秉,編輯后才出現(xiàn)清除按鈕
textField.clearButtonMode = .always //一直顯示清除按鈕
8.設(shè)置鍵盤輸入類型
- Default:系統(tǒng)默認(rèn)的虛擬鍵盤
- ASCII Capable:顯示英文字母的虛擬鍵盤
- Numbers and Punctuation:顯示數(shù)字和標(biāo)點(diǎn)的虛擬鍵盤
- URL:顯示便于輸入url網(wǎng)址的虛擬鍵盤
- Number Pad:顯示便于輸入數(shù)字的虛擬鍵盤
- Phone Pad:顯示便于撥號(hào)呼叫的虛擬鍵盤
- Name Phone Pad:顯示便于聊天撥號(hào)的虛擬鍵盤
- Email Address:顯示便于輸入Email的虛擬鍵盤
- Decimal Pad:顯示用于輸入數(shù)字和小數(shù)點(diǎn)的虛擬鍵盤
- Twitter:顯示方便些Twitter的虛擬鍵盤
- Web Search:顯示便于在網(wǎng)頁上書寫的虛擬鍵盤
textField.becomeFirstResponder()//獲取輸入焦點(diǎn),并彈出鍵盤
//textField.resignFirstResponder()//失去焦點(diǎn)劲室,并收起鍵盤
textField.keyboardType = .numberPad//設(shè)置鍵盤輸入模式
如果你在使用模擬器的時(shí)候發(fā)現(xiàn)鍵盤沒有彈出來伦仍,可以通過下面的操作彈出鍵盤,Hardwar-->Keyboard-->取消Connect Hardware Keyboard的選中狀態(tài)痹籍,或者你直接使用快捷鍵shift+command+k即可彈出鍵盤,9.設(shè)置鍵盤上return鍵的樣式
- done //表示完成輸入
- go //表示完成輸入呢铆,同時(shí)會(huì)跳到另一頁
- search //表示搜索
- join //表示注冊(cè)用戶或添加數(shù)據(jù)
- next //表示繼續(xù)下一步
- send //表示發(fā)送
textField.returnKeyType = UIReturnKeyType.done //表示完成輸入
textField.returnKeyType = UIReturnKeyType.go //表示完成輸入,同時(shí)會(huì)跳到另一頁
textField.returnKeyType = UIReturnKeyType.search //表示搜索
textField.returnKeyType = UIReturnKeyType.join //表示注冊(cè)用戶或添加數(shù)據(jù)
textField.returnKeyType = UIReturnKeyType.next //表示繼續(xù)下一步
textField.returnKeyType = UIReturnKeyType.send //表示發(fā)送
10.為return添加響應(yīng)時(shí)間蹲缠,首先需要實(shí)現(xiàn)協(xié)議UITextFieldDelegate棺克,然后為textField綁定return點(diǎn)擊事件
class ViewController: UIViewController, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
//定義控件x:30 y:100 width:300 height:40
let textField = UITextField(frame: CGRect(x: 30, y: 100, width: 300, height: 40))
//設(shè)置邊框樣式 圓角
textField.borderStyle = .roundedRect
//將控件添加到子視圖中
self.view.addSubview(textField)
//需現(xiàn)將masksToBounds設(shè)置為true
textField.layer.masksToBounds = true
textField.layer.borderColor = UIColor.blue.cgColor
textField.layer.borderWidth = 2.0
textField.layer.cornerRadius = 5.0
textField.placeholder = "這是提示文本"http://提示文本
//當(dāng)文字超出文本框?qū)挾葧r(shí)纠吴,自動(dòng)調(diào)整文字大小蔑水,默認(rèn)是以省略號(hào)代替
textField.adjustsFontSizeToFitWidth = true
textField.minimumFontSize=10 //最小可縮小的字號(hào)
textField.becomeFirstResponder()//獲取輸入焦點(diǎn),并彈出鍵盤
textField.keyboardType = .webSearch//設(shè)置鍵盤輸入模式
textField.returnKeyType = .done //設(shè)置return鍵樣式
textField.delegate = self //為textField綁定事件
}
//實(shí)現(xiàn)return點(diǎn)擊事件
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
print(textField.text ?? "")
return true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
運(yùn)行結(jié)果如下圖所示:大家再學(xué)習(xí)的過程中恬叹,一定要多動(dòng)手嘗試斤讥,盡量把每個(gè)屬性都嘗試一下看看運(yùn)行的效果纱皆,如果遇到本文沒有講到的內(nèi)容湾趾,請(qǐng)根據(jù)具體情況進(jìn)行搜索。