公司的項(xiàng)目中有多個(gè)界面涉及到業(yè)務(wù)上報(bào),一個(gè)界面內(nèi)有多個(gè)TextView的情況

效果圖
剛開始寫的時(shí)候,想找個(gè)大神寫好的textview的適配,但是網(wǎng)上多數(shù)是單個(gè)textview的適配及鍵盤的遮擋問題。但是多個(gè)textview的我找了很多,基本沒有,所以只有自己來琢磨。
方法一
Masonry + IQKeyboardManager 相結(jié)合進(jìn)行界面適配及鍵盤遮擋問題。
? ? 利用masonry的自動(dòng)適配的好處,我們可以在修改單個(gè)textview的高度變化時(shí),相鄰的其他控件會(huì)自動(dòng)下移或者上移等。
? IQKeyboardManager會(huì)幫助我們解決第一次點(diǎn)擊textview時(shí)的鍵盤遮擋問題,但是后面隨著textview的換行,我們得自己根據(jù)textview的高度增加,讓父視圖上移或者下移。

Masonry

Masonry適配
這里是主體部分?。。。。。?!

方法二
根據(jù)textview的代理,逐條計(jì)算當(dāng)前輸入textview的高度變化量。
? ? 這個(gè)方法就是給每個(gè)textview設(shè)置tag值,在代理方法中根據(jù)每個(gè)tag判斷是哪個(gè)textview換行和鍵盤遮擋問題。其他空間重新設(shè)置一次fram。這個(gè)方法就是麻煩切代碼巨多。