ios tableview 上加 textfiled

ios tableview 上加 textfiled 

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

圖1:iview

圖2:ui

 

圖3:spa

 

心在你我說一下  我當初的實現 方法 ,但願能給大家一些  啓示設計

 

圖1:  我採用的是最簡單的方法   由於cell的個數比較少 而且不會出現鍵盤把cell擋住的狀況  因此我直接就是用的 view 上邊加 label  +textfield  雖然代碼很繁瑣 可是 仍是實現了基本的效果code

 

圖2:因爲這個cellde 個數比較多 再使用   view+label+textfield的方法 就不現實了,  因此我 就找各類辦法,終於 找到 cell能夠跟隨鍵盤移動了,也就是說 鍵盤不會擋住輸入框,我採用的是tableviewcontroller    ,只有使用 TableviewController就很容易的實現了我想要的效果。    可是 後來在開發中遇到一個問題  :    由於使用的是UItableviewContrller   當時咱們的設計就說 可不能夠將下邊的按鈕審覈中 讓他的位置固定  ,不隨tableview的滾動而滾動,可是我也是嘗試了各類的辦法,可是仍是沒有辦法實現,因此最後ui妥協了 就讓他隨位置移動吧 ,由於tableviewcontroller 雖然幫助咱們實現了不少的功能,可是 在界面是就比較侷限了,遠遠比不上  uiviewcontroller+tableview  靈活。blog

 

圖3: 最近又要作  相似於  圖2 的  圖,我終於 仍是 不能容忍本身 使用uitableviewcontroller了  因此我仍是 試了不少 就是 如圖三實現的效果: 當鍵盤出來的時候 不會擋住uitextfield    不影響用戶的體驗,那麼我是如何實現的呢?開發

 

 

思路:it

uiviewcontroller+uitableviewio

讓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 

相關文章
相關標籤/搜索