zoukankan      html  css  js  c++  java
  • 在UITableViewController里面实现UITextField与键盘的自适应

    tableview里面对textfield的键盘适应本身就是逻辑实现,利用下面代理函数将textfield的位置移到最优点。

    	//将活跃的textview移动到tableview的中间
    		- (void)textFieldDidBeginEditing:(UITextField*)textField
    		{
    		    UITableViewCell* cell = [self parentCellFor:textField];
    		    if (cell)
    		    {
    		        NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];
    		        [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    		    }
    		}
    
    	//结束textview的编辑时将tableview移动到原来的位置
    		- (void)textFieldDidEndEditing:(UITextField*)textField
    		{
    		    UITableViewCell* cell = [self parentCellFor:textField];
    		    if (cell)
    		    {
    		        NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];
    		        [self textFieldDidEndEditing:textField inRowAtIndexPath:indexPath];
    		        [self.tableView reloadRowsAtIndexPaths:@[ indexPath ] withRowAnimation:UITableViewRowAnimationNone];
    		    }
    		}
    
    	//寻找当前cell在tableview中的位置 
    		- (UITableViewCell*)parentCellFor:(UIView*)view
    		{
    		    if (!view)
    		        return nil;
    		    if ([view isMemberOfClass:[UITableViewCell class]])
    		        return (UITableViewCell*)view;
    		    return [self parentCellFor:view.superview];
    		}
    

    以上方法可以有效的使得tableview中的textview正确的移动位置

  • 相关阅读:
    复制datatable的指定行到另外一个datatable
    .NET Framework 版本
    Excel读取
    asp.net技巧
    添加的控件的追赶事件
    MasterPage和内容页之间数据传递
    常用JS方法
    在服务器端修改HTML控件的属性
    IsPostBack深入探讨
    js(javascript)自定义的DateAdd和DateDiff函数以及当前日期的取法
  • 原文地址:https://www.cnblogs.com/cillyfly/p/3818154.html
Copyright © 2011-2022 走看看