1

我有一个 TableViewController 并使用故事板设计了一个自定义的 uitableview 单元格。我已经为我的 tableview 单元格中的所有子视图正确设置了标识符和标签(我不是第一次这样做,并且通常可以轻松地完成工作)。

但现在我一直在我的 tableview 控制器上观察到一些奇怪的东西。在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中,我得到了正确的单元格。我还可以使用标签访问我的子视图。但是当我尝试访问任何子视图的框架属性时,我得到的值为 0。

子视图是否稍后以其他方法布局。这是我第一次看到这个。以前有人经历过吗?

4

2 回答 2

3

UITableViewCell只有在调用了“layoutSubviews”方法后,单元格的子视图帧才准备就绪。如果你需要修改这些框架,那么你应该创建一个 UITableViewCell 的子类并实现 layoutSubviews

- (void)layoutSubviews {
  [super layoutSubviews];

  // modify frames here
}

如果您只需要访问帧值并且不需要进行任何更改,那么您可以简单地在tableView:willDisplayCell:forRowAtIndexPath:方法中检查它。

于 2013-03-30T03:31:04.463 回答
2

在那里实现tableView:willDisplayCell:forRowAtIndexPath:并检查子视图的框架。他们在那里还好吗?那么一切都很好。

于 2013-03-30T03:28:49.870 回答