下午,一個朋友問了一個問題,關於UITableView的,大概意思就是,他想在UITableView的Cell中實現UITextView在用戶的輸入過程當中的高度動態更新。產品
關於高度自增加UITextView這個實現很簡單,網上也有不少小例子,問題是,每次UITextView換行的時候,cell的高度也須要動態變化,這時候,代碼直接修改了Model 的高度,可是:問題來了,修改了Model的高度以後,怎麼搞定UITableViewCell的刷新,你要是說,簡單啊,直接調用TableView的reload方法,恭喜你!中獎了,確實是刷新了Cell的高度,問題是,由於鍵盤被resign,因此,鍵盤被收下去了,用戶輸入過程換行致使了鍵盤被收起來,想繼續編輯還得點一下UITextView從新調出鍵盤,這不是被產品狗叼到死的節奏嗎!table
那麼解決方法是什麼呢?很簡單,你在UITextView的換行Block代碼中加入一句,reload你在編輯的那個Cell的row行數的row+1特定的那一行,而不是整個UItableView都reload就好了,這樣即刷新了cell的高度,也不會致使鍵盤被收下去,恩恩,完美解決!
方法