表格视图中叠加的文本字段

Posted

技术标签:

【中文标题】表格视图中叠加的文本字段【英文标题】:TextField superposed in tableview 【发布时间】:2014-07-27 16:58:13 【问题描述】:

我最初用一些数据加载了一个隐藏的tableView,并在我按下按钮时显示它,模拟下拉菜单。 在同一个视图中,我有一个UIButton,当按下它时,会以编程方式创建另一个UIButton 和一个UITextField

问题是当我再次加载时,tableView 和所有textFields 和buttons 都叠加了。

会发生这样的事情:

我的问题是我该怎么做才能将tableView 保持在视图的前面。

【问题讨论】:

【参考方案1】:

当您执行-addSubview: 时,该视图将添加为最顶层视图。 这就是您新添加的textFields 出现在您的tableView 上方的原因。

解决您的问题的最快方法是在您计划显示 tableView 时将其设为最顶部的视图。

例子:

[yourTableView setHidden:NO];
[self.view bringSubviewToFront:yourTableView];

假设self.view 包含yourTableView

【讨论】:

【参考方案2】:

您遇到的是单元可重用性问题。

如果您在单元格上添加控件,当它们被重用时,它们将保留给您这种奇怪的并列结果的 textFields。

您必须小心删除使事情变得更加复杂的 textField。

解决方案是对UITableViewCell 进行子类化,这样您就有一个带有textfield 的原型单元格,而另一个没有。

【讨论】:

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

在动态表格视图中获取文本字段值

从表格视图单元格内的文本字段中获取文本

文本字段标签和表格视图

如何根据文本字段的搜索结果在表格视图中显示行

如何专注于表格视图中视图之外的文本字段?

从表格视图单元格中收集文本字段文本 (Swift)