【问题标题】:TextField superposed in tableview表格视图中叠加的文本字段
【发布时间】:2014-07-27 16:58:13
【问题描述】:
我最初用一些数据加载了一个隐藏的tableView,并在我按下按钮时显示它,模拟下拉菜单。
在同一个视图中,我有一个UIButton,当按下它时,会以编程方式创建另一个UIButton 和一个UITextField。
问题是当我再次加载时,tableView 和所有textFields 和buttons 都叠加了。
会发生这样的事情:
我的问题是我该怎么做才能将tableView 保持在视图的前面。
【问题讨论】:
标签:
ios
objective-c
uitableview
uibutton
uitextfield
【解决方案1】:
当您执行-addSubview: 时,该视图将添加为最顶层视图。
这就是您新添加的textFields 出现在您的tableView 上方的原因。
解决您的问题的最快方法是在您计划显示 tableView 时将其设为最顶部的视图。
例子:
[yourTableView setHidden:NO];
[self.view bringSubviewToFront:yourTableView];
假设self.view 包含yourTableView
【解决方案2】:
您遇到的是单元可重用性问题。
如果您在单元格上添加控件,当它们被重用时,它们将保留给您这种奇怪的并列结果的 textFields。
您必须小心删除使事情变得更加复杂的 textField。
解决方案是对UITableViewCell 进行子类化,这样您就有一个带有textfield 的原型单元格,而另一个没有。