2011-12-22 58 views
0

当键盘显示出来时,我想滚动我的UITableView以使文本字段不被键盘覆盖。我知道如何滚动的tableView和contentInset等我无法计算滚动的距离。UITableViewCell中的UITextField的原始值

我有键盘尺寸(从UIKeyboardDidShowNotification)。但是,我无法为正在编辑的文本字段获取有用的原始值。在UITextField传递给textFieldDidBeginEditing的起源是没有帮助的:价值,无论是同多数民众赞成正在编辑的文本字段中。 textField.superview.origin也没有帮助。

如何获取正在编辑的textField的原点的有用值?

我将使用此值以及键盘高度来确定滚动的距离。

回答

2

我个人认为最好的是改变表视图​​的框架,使它完全不被键盘隐藏(你可以看看键盘框架并根据它改变表视图​​框架)。然后滚动使用scrollToRowAtIndexPath:atScrollPosition:animated:从而使细胞可见表视图。

这样UITableView处理什么实际内容偏移应该是你的。

+0

听起来不错。任何确定要滚动到哪个indexPath的首选方法?我想我会在'textFieldDidBeginEditing'和'didRotateFromInterfaceOrientation'中滚动tableView。 – SundayMonday 2011-12-23 00:14:33

1

如果您的行高和标题高度都相同,您可以简单地获取行值并将其乘以行高以获得正确的原点。如果你使用可变的行高/节头,那么这种方法会变得更加复杂。

第二种方法,在我打字时由MattJGalloway发布,就是改变tableview的框架,然后让tableView滚动自己。这也是我的首选方法。

相关问题