如何获得真正的自定义单元格的宽度?

时间:2015-10-31 06:37:25

标签: ios objective-c uitableview custom-cell layoutsubviews

我在故事板中有一个自定义单元格。我在故事板中为包含其viewController的{​​{1}}设置了iPhone 4.7英寸。

由于我想在此单元格内的tableView中布置一些UIImageViews,我需要知道单元格的宽度。我试图将此宽度放在scrollView内,如下所示:

layoutSubviews

它被多次调用,当我在iPhone 5上运行时,前两次不正确(它是故事板上的375,之后它是320的,这是正确的尺寸)

无论如何,我如何获得单元格的实际宽度?

提前致谢。

2 个答案:

答案 0 :(得分:0)

自动布局已停用?

如果单元格不支持自动布局,

-(void)layoutSubviews将正常工作并提供您预期的高度和宽度。

启用自动布局?

在约束更新传递期间重写此选项以调整特殊约束

- (void)updateConstraints
{
  [super updateConstraints];

  CGFloat cellWidth = CGRectGetWidth(self.bounds);
  NSLog(@"cellWidth %f", cellWidth);
}

希望这会奏效!

答案 1 :(得分:0)

最终,事实是UIKit可以多次拨打self.bound.size。你只需假设每次都是最后一次,并采取措施避免重复工作。例如。从前一次调用中缓存private BroadcastReceiver mReceiver; ,只有在更改后才会继续。

或者您可以在滚动视图和图像视图上设置约束,而不必担心手动布局。