Objective c 目标C-iOS,在屏幕外的静态表格单元格中遍历UILabel

Objective c 目标C-iOS,在屏幕外的静态表格单元格中遍历UILabel,objective-c,ios,uitableview,uilabel,Objective C,Ios,Uitableview,Uilabel,我有一个由静态单元格组成的UITableView,每个单元格都包含一个UILabel,当屏幕加载时,它会填充字段数据。一个屏幕上容纳的单元格太多,因此表格视图会滚动。UILabel在设计时是隐藏的,我想在设置完所有文本属性后将其设置为可见。我一直在使用tableView的subviews属性迭代标签,以设置hidden:NO,但这只会影响当前视图中单元格内的标签。我如何遍历所有UILabel,而不管视图中是否有UILabel 谢谢 Jonathan您可以在表视图:cellforrowatinex

我有一个由静态单元格组成的UITableView,每个单元格都包含一个UILabel,当屏幕加载时,它会填充字段数据。一个屏幕上容纳的单元格太多,因此表格视图会滚动。UILabel在设计时是隐藏的,我想在设置完所有文本属性后将其设置为可见。我一直在使用tableView的subviews属性迭代标签,以设置hidden:NO,但这只会影响当前视图中单元格内的标签。我如何遍历所有UILabel,而不管视图中是否有UILabel

谢谢
Jonathan

您可以在
表视图:cellforrowatinexpath:
方法中解决此问题

假设您已经实现了静态单元格,那么您的
tableView:cellforrowatinexpath:
应该看起来像一系列
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:cellforrowatinexpath:
并重新配置。

只需调用cellforrowatinexpath:方法即可

for(NSUInteger i = 0; i < numberOfCells; i++) {
UITableView* cell = [tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:i  inSection:0];
}
for(整数i=0;i
@Caleb他说他用的是静态电池