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 

相关文章
相关标签/搜索