【发布时间】:2011-01-29 10:55:21
【问题描述】:
我有一个自定义 UITableViewCell,其中包含几个 UIButton。每个按钮的框架位置都与单元格宽度相关。我设置了 autoresizingMask=UIViewAutoresizingFlexibleWidth ,因此当应用程序以横向或纵向模式启动设备时,它将正确调整单元格宽度和按钮位置。
问题是当设备从一种模式旋转到另一种模式时,按钮不会调整位置,因为 UITableViewCell 是可重复使用的。换句话说,单元格没有根据新的 UITalbeView 宽度进行初始化,因为单元格的函数 initWithStyle 在设备旋转之前被调用,并且在设备旋转之后不再被调用。有什么建议吗?
【问题讨论】:
-
最终解决方案要简单得多。它只需要设置 self.contentView.autoresizingMask=UIViewAutoresizingFlexibleWidth; self.contentView.autoresizesSubviews=YES;设置 self.autoresizingMask 不起作用。
-
我和你有同样的问题,我正在考虑为每个方向案例使用特定的单元格标签,因为这个想法是在我思考了一段时间后想到的。使用 self.contentView.autoresizesSubviews=YES 对我来说不起作用。
-
最后我用了另一个技巧。
标签: iphone uitableview rotation reusability initwithstyle