iOS開發(fā)整理之模仿微信輸入框

現(xiàn)在的項(xiàng)目中需要實(shí)現(xiàn)類似微信聊天中的輸入模式,就是輸入框隨著鍵盤的高度變化而變化汞扎,并且同時(shí)輸入框的高度跟著文本的輸入高度而變化季稳。效果如圖:

效果圖

首先,該項(xiàng)目中主要用了四個(gè)屬性澈魄,各個(gè)屬性的主要用途注釋中已經(jīng)寫清楚

主要屬性

鍵盤工具欄主要用于收起鍵盤:

鍵盤工具欄的初始化

以下是另外兩個(gè)控件的簡單設(shè)置景鼠,其中需要注意的是,textview必須要設(shè)置字體大小即font痹扇,不然當(dāng)在輸入框中首先輸入中文時(shí)會(huì)崩潰铛漓,但是先輸入英文再輸入中文則不會(huì)崩潰,至于為什么我現(xiàn)在也不太清楚鲫构,只是在崩潰時(shí)無意設(shè)置了一下font浓恶,便沒有問題了。

控件初始化

在viewdidload里面確定輸入框即其背景的初始位置结笨,通過textview的inputAccessoryView屬性設(shè)置工具欄问顷,接著監(jiān)聽鍵盤frame即將發(fā)生變化的通知

接下來就是監(jiān)聽到鍵盤位置變化后所執(zhí)行的方法了。UIKeyboardWillChangeFrameNotification這個(gè)通知是鍵盤Fram即將發(fā)生變化時(shí)就會(huì)跑出通知禀梳,我們可通過這個(gè)通知獲取到鍵盤的UIKeyboardFrameEndUserInfoKey的關(guān)鍵字杜窄,也即鍵盤位置改變后的位置,因?yàn)槲覀円ㄟ^這個(gè)位置來確定輸入框的位置算途。當(dāng)鍵盤即將消失時(shí)我們設(shè)置輸入框的位置為原始位置塞耕,當(dāng)鍵盤即將展示時(shí)我們將輸入框的位置設(shè)置在鍵盤之上。并在該過程中獲取鍵盤的高度用于下面的動(dòng)態(tài)改變輸入框的高度嘴瓤。當(dāng)做完這些后扫外,輸入框就已經(jīng)可以隨著鍵盤的變化而變化了莉钙,但此時(shí)輸入框的高度始終展示一行數(shù)據(jù),上一行的數(shù)據(jù)會(huì)自動(dòng)滾到看不見的地方筛谚,如下圖效果1所示:


效果1

當(dāng)實(shí)現(xiàn)了效果1之后磁玉,為了實(shí)現(xiàn)最終的效果,我們還得要監(jiān)聽一下textview的方法驾讲。根據(jù)輸入的字符串計(jì)算高度蚊伞。boundingRectWithSize這個(gè)方法的options可以有四種選擇,每種選擇也都在注釋里基本寫了一些吮铭,其余的代碼也就是一般的設(shè)置控件位置了时迫。

最后,demo的鏈接是github.com/hmj0930/WechatInputTextView.git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谓晌,一起剝皮案震驚了整個(gè)濱河市掠拳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纸肉,老刑警劉巖溺欧,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柏肪,居然都是意外死亡姐刁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門预吆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來龙填,“玉大人,你說我怎么就攤上這事拐叉⊙乙牛” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵凤瘦,是天一觀的道長宿礁。 經(jīng)常有香客問我,道長蔬芥,這世上最難降的妖魔是什么梆靖? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮笔诵,結(jié)果婚禮上返吻,老公的妹妹穿的比我還像新娘。我一直安慰自己乎婿,他們只是感情好测僵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般捍靠。 火紅的嫁衣襯著肌膚如雪沐旨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天榨婆,我揣著相機(jī)與錄音磁携,去河邊找鬼。 笑死良风,一個(gè)胖子當(dāng)著我的面吹牛谊迄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拖吼,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鳞上,長吁一口氣:“原來是場噩夢啊……” “哼这吻!你這毒婦竟也來了吊档?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唾糯,失蹤者是張志新(化名)和其女友劉穎怠硼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體移怯,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡香璃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舟误。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葡秒。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嵌溢,靈堂內(nèi)的尸體忽然破棺而出眯牧,到底是詐尸還是另有隱情,我是刑警寧澤赖草,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布学少,位于F島的核電站,受9級特大地震影響秧骑,放射性物質(zhì)發(fā)生泄漏版确。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一乎折、第九天 我趴在偏房一處隱蔽的房頂上張望绒疗。 院中可真熱鬧,春花似錦骂澄、人聲如沸吓蘑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士修。三九已至枷遂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棋嘲,已是汗流浹背酒唉。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沸移,地道東北人痪伦。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像雹锣,于是被迫代替她去往敵國和親网沾。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 26,742評論 5 19
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫蕊爵、插件辉哥、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評論 4 62
  • 聊天控制器(ChatViewController)界面搭建 14.聊天界面-工具條排版 1)搭建界面 添加聊天控制...
    夜空已沉寂閱讀 3,029評論 0 4
  • 消愁-毛不易 作詞:毛不易 作曲:毛不易 當(dāng)你走進(jìn)這歡樂場 背上所有的夢與想 各色的臉上各色的妝 沒人記得你的模樣...
    U大大閱讀 284評論 0 0
  • 最近不愛吃飯,又有點(diǎn)失眠攒射。一夜醒四五次喂奶醋旦,然后就瞪著眼睛看天花板,幾個(gè)小時(shí)都睡不著会放。一整天只吃一頓也不覺得餓饲齐。這...
    靜聽l風(fēng)吟閱讀 190評論 0 0