我有一个TableViewController,并使用storyboard设计了一个自定义的uitableview单元格。我已经正确地为我的tableview单元格中的所有子视图设置了标识符和标签(我不是第一次这样做,并且通常让事情很容易) 。
但是现在我一直在我的tableview控制器上观察一些奇怪的东西。在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法中,我得到了正确的单元格。我也可以使用标签访问我的子视图。但是当我尝试访问任何子视图的框架属性时,我得到的值为0.
子视图是否会在其他方法中稍后进行布局。这是我第一次看到这个。有人曾经经历过这个吗?
答案 0 :(得分:3)
单元格的子视图框架仅在UITableViewCell
' layoutSubviews'之后准备就绪。方法已被调用。如果您需要修改这些框架,那么您应该创建一个UITableViewCell的子类并实现layoutSubviews
- (void)layoutSubviews {
[super layoutSubviews];
// modify frames here
}
如果您只需要访问帧值而不需要进行任何更改,那么您只需在tableView:willDisplayCell:forRowAtIndexPath:
方法中检查它。
答案 1 :(得分:2)
实施tableView:willDisplayCell:forRowAtIndexPath:
并检查子视图的框架。他们还好吗?一切都很好。