ios tableview 上加 textfiled
首先附上我項目中用曾經用到的幾張圖 並說明一下我的用法:
圖1:

圖2:

圖3:
心在你我說一下 我當初的實現 方法 ,希望能給你們一些 啟示
圖1: 我采用的是最簡單的方法 因為cell的個數比較少 並且不會出現鍵盤把cell擋住的情況 所以我直接就是用的 view 上邊加 label +textfield 雖然代碼很繁瑣 但是 還是實現了基本的效果
圖2:由於這個cellde 個數比較多 再使用 view+label+textfield的方法 就不現實了, 所以我 就找各種辦法,終於 找到 cell可以跟隨鍵盤移動了,也就是說 鍵盤不會擋住輸入框,我采用的是tableviewcontroller ,只有使用 TableviewController就很容易的實現了我想要的效果。 但是 后來在開發中遇到一個問題 : 因為使用的是UItableviewContrller 當時我們的設計就說 可不可以將下邊的按鈕審核中 讓他的位置固定 ,不隨tableview的滾動而滾動,但是我也是嘗試了各種的辦法,但是還是沒有辦法實現,所以最后ui妥協了 就讓他隨位置移動吧 ,因為tableviewcontroller 雖然幫助我們實現了很多的功能,但是 在界面是就比較局限了,遠遠比不上 uiviewcontroller+tableview 靈活。
圖3: 最近又要做 類似於 圖2 的 圖,我終於 還是 不能容忍自己 使用uitableviewcontroller了 所以我還是 試了很多 就是 如圖三實現的效果: 當鍵盤出來的時候 不會擋住uitextfield 不影響用戶的體驗,那么我是如何實現的呢?
思路:
uiviewcontroller+uitableview
讓tableview 的當前編輯的cell 始終處於 tableview 的中間位置,這樣的話就不會被擋住了。當然了 tableview 里邊就有相應的方法:
[_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
是的 使用這個方法就可以了。
發上代碼:
#pragma mark - 改變tableview的位置(當將要編輯的時候) -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0]; //將要編輯的textfield 所在的cell 使其滾動到中間的位置 [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; return YES; }
沒錯使用這個就可以實現了。是不是感覺很神奇ne
