使表格视图中的 UITextField 可见滚动

Posted

技术标签:

【中文标题】使表格视图中的 UITextField 可见滚动【英文标题】:Make UITextField inside a table view visible scrolling 【发布时间】:2011-05-07 20:52:14 【问题描述】:

我有一个 UITableViewController、一堆部分和行,我为每一行添加了一个 UITextField 作为子视图,在行本身中右对齐。

如果用户点击该行,我在本地保存 indexPath,使相应的文本字段成为第一响应者,最后,当键盘出现时,我使表格视图滚动以使该行保持可见。

当用户点击文本字段时,我面临获得相同行为的问题。在这种情况下,没有调用 didSelectRowAtIndexPath: 方法,所以我不知道如何让表格视图滚动以确保“选定”行仍然可见。

可能整个过程都不​​正确。你知道解决方法吗?

非常感谢!

【问题讨论】:

【参考方案1】:

我不是很确定,但是...

UITextFielduserInteractionEnabled 属性设置为NO。这样,触摸“通过”控件,点击UITableViewCell。在调用didSelectRowAtIndexPath: 时,将UITextFielduserInteractionEnabled 属性设置为YES。编辑完成后,改回NO

【讨论】:

很好,它确实是这样工作的。如果我以奇怪的方式关闭键盘(例如,触摸其他控件或切换标签栏视图等),我只担心 UITextFields 可以将 userInteractionEnabled 标志设置为 YES。 如果你实现UITextFieldDelegate方法textFieldDidEndEditing:并将userInteractionEnabled设置为NO,那将不会发生。 @marzapower:如果您需要更多帮助,请告诉我。

以上是关于使表格视图中的 UITextField 可见滚动的主要内容,如果未能解决你的问题,请参考以下文章

弹出窗口中的 UITableView 不会停止滚动

如何滚动 ListView 中的项目使其可见?

当我在 SE 中向上滚动时,自定义 UITableViewCell 中的 UItextfield 文本打印为零

隐藏表格视图上方的视图

使 UITextField 子视图成为 UITableView 中的第一响应者时出错

UITableView 中的自定义单元格使图像在滚动时重叠