ios tableview 上加 textfiled


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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM