具有文本字段滚动问题的 iOS 表格视图

Posted

技术标签:

【中文标题】具有文本字段滚动问题的 iOS 表格视图【英文标题】:iOS table view having text fields scrolling issue 【发布时间】:2011-11-02 07:30:02 【问题描述】:

我有一个由自定义单元格组成的 UITableView。有 21 个包含文本字段的单元格。

当我尝试滚动和编辑 UITableView 底部的单元格时,我无法将单元格正确定位在键盘上方。

我还为我的单元格单独创建了一个自定义单元格类。所以键盘委托仅在该类上可用。

我已经看到很多关于更改视图大小等的答案......但到目前为止,它们都没有很好地工作。

谁能用一个具体的代码示例阐明“正确”的做法?

【问题讨论】:

您是否尝试过使用自动处理这些事情的 uitableviewcontroller 类..... 【参考方案1】:

解决这个问题有三种方法,所有这些方法都与键盘相关,会显示通知....

    当键盘出现时,您将 整个 视图(包括 tableview)向上移动以确保所选文本字段显示在屏幕上,您可以通过获取键盘高度(从通知)和文本字段位置。

    您可以调整 tableview 的大小,使其仅与屏幕被键盘覆盖的部分一样大,再次从通知中获取高度。

    您可以将tableview的内容插入(用于底部值)设置为键盘的高度。

如果您需要,在调整大小或重新定位 tableview 时,您可能需要将其设置为将内容滚动到文本字段的 rect 以确保它在视图中...

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;

【讨论】:

谢谢老兄,但键盘出现在表格视图单元格类上,它只包含内容视图而不是 整个 视图是否有任何方法可以在每个单元格上为行调用 他们的键盘是一个全局视图,所以即使它被单元格中的文本字段调用,您也可以从任何您喜欢的地方观察键盘通知,在这种情况下,从包含你的桌子。

以上是关于具有文本字段滚动问题的 iOS 表格视图的主要内容,如果未能解决你的问题,请参考以下文章

滚动表格视图时隐藏文本字段数据

将文本字段动态添加到表格视图单元格并水平滚动

滚动表格视图时删除的文本字段值?

滚动表格视图时,文本字段文本在其他文本字段上留下印象

表格视图仅滚动到文本字段底部边缘

滚动表格视图时文本字段为空