我有一个由静态单元格组成的 UITableView,每个单元格都包含一个 UILabel,当屏幕加载时,它会填充字段数据。单元格数量超出了一个屏幕的容纳范围,因此 TableView 会滚动。 UILabels 在设计时隐藏,我想在设置所有文本属性后将它们设置为可见。我一直在使用 tableView 的 subviews 属性来迭代标签以 setHidden:NO 但这只会影响当前 View 中的单元格内的标签。我如何迭代所有 UILabel,无论哪些 UILabels 在 View 中或不在 View 中?
谢谢 乔纳森
最佳答案
您可以在 tableView:cellForRowAtIndexPath:
方法中解决此问题。
假设您已经实现了静态单元the way Apple's guide suggests ,您的 tableView:cellForRowAtIndexPath:
应类似于一系列 if-then-else
语句,返回通过 IBOutlet
对象提供的单元格:
if (indexPath.row == 0) {
return cell1;
} else if (indexPath.row == 1) {
return cell2;
} // .. and so on
修改此代码如下:
UITableViewCell *res = nil;
if (indexPath.row == 0) {
res = cell1;
} else if (indexPath.row == 1) {
res = cell2;
} // .. and so on
// Call your custom code that makes the label visible
if (allTextPropertiesHaveBeenLoaded) {
[res setMyLabelVisible];
}
return res;
设置所有文本属性后,调用 reloadData
强制所有单元格通过 tableView:cellForRowAtIndexPath:
并重新配置。
关于objective-c - Objective C - iOS,在屏幕外的静态表格单元格内迭代 UILabels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10272315/