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正确的移动位置

  • 相关阅读:
    8月6日总结
    8月4日总结
    8月3日总结
    快速幂计算题解
    7月31日总结
    7月30日总结
    关于PHP中”::”能够调用一个非静态的方法的解释
    码云 使用 svn 管理项目
    Mysql的数据类型
    thinkphp5的$this->fetch()
  • 原文地址:https://www.cnblogs.com/cillyfly/p/3818154.html
Copyright © 2011-2022 走看看