Swift4.0學(xué)習(xí)筆記(三)——文本輸入框(UITextField)

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)

效果如下:
自適應(yīng).gif

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é)果如下圖所示:
return點(diǎn)擊事件.png

大家再學(xué)習(xí)的過程中恬叹,一定要多動(dòng)手嘗試斤讥,盡量把每個(gè)屬性都嘗試一下看看運(yùn)行的效果纱皆,如果遇到本文沒有講到的內(nèi)容湾趾,請(qǐng)根據(jù)具體情況進(jìn)行搜索。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末派草,一起剝皮案震驚了整個(gè)濱河市搀缠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌近迁,老刑警劉巖艺普,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鉴竭,居然都是意外死亡歧譬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門搏存,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑰步,“玉大人,你說我怎么就攤上這事璧眠∷踅梗” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵责静,是天一觀的道長舌界。 經(jīng)常有香客問我,道長泰演,這世上最難降的妖魔是什么呻拌? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮睦焕,結(jié)果婚禮上藐握,老公的妹妹穿的比我還像新娘。我一直安慰自己垃喊,他們只是感情好猾普,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著本谜,像睡著了一般初家。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乌助,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天溜在,我揣著相機(jī)與錄音,去河邊找鬼他托。 笑死掖肋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赏参。 我是一名探鬼主播志笼,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼沿盅,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了纫溃?” 一聲冷哼從身側(cè)響起腰涧,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎紊浩,沒想到半個(gè)月后南窗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡郎楼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窒悔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呜袁。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖简珠,靈堂內(nèi)的尸體忽然破棺而出阶界,到底是詐尸還是另有隱情,我是刑警寧澤聋庵,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布膘融,位于F島的核電站,受9級(jí)特大地震影響祭玉,放射性物質(zhì)發(fā)生泄漏氧映。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一脱货、第九天 我趴在偏房一處隱蔽的房頂上張望岛都。 院中可真熱鬧,春花似錦振峻、人聲如沸臼疫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烫堤。三九已至,卻和暖如春凤价,著一層夾襖步出監(jiān)牢的瞬間鸽斟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工利诺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湾盗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓立轧,卻偏偏與公主長得像格粪,于是被迫代替她去往敵國和親躏吊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容