UITextField在UITableViewCell中的原始值

时间:2011-12-22 22:45:37

标签: ios uiscrollview uitextfield

我想在显示键盘时向上滚动UITableView,这样键盘就不会覆盖文本字段。我知道如何滚动tableView和contentInset等。我在计算滚动距离时遇到了麻烦。

我有键盘尺寸(来自UIKeyboardDidShowNotification)。但是,我无法为正在编辑的文本字段获取有用的原始值。传递给UITextField的{​​{1}}的来源没有帮助:无论正在编辑的textField如何,值都是相同的。 textFieldDidBeginEditing也无济于事。

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

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

2 个答案:

答案 0 :(得分:2)

我个人认为最好的方法是更改​​表格视图的框架,使其不被键盘隐藏(您可以查看键盘框架并根据该框架更改表格视图框架)。然后使用scrollToRowAtIndexPath:atScrollPosition:animated:滚动表格视图,以便单元格可见。

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

答案 1 :(得分:1)

如果您的行高和标题高度都相同,您只需获取行值并将其乘以行高即可获得正确的原点。如果您使用的是变量行高/节标题,那么这种方法会变得有点复杂。

MattJGalloway在我输入时发布的第二种方法是更改​​tableview的框架,然后让tableView自行滚动。这也是我的首选方法。