【发布时间】:2015-07-07 09:19:21
【问题描述】:
我有一个UITableViewCell,我使用自动布局在其中放入了contentView 标签和其他内容。我添加了约束,其中之一是 contentView 与 UITableViewCell 具有相同的边界。
(在storyboard上,为了方便,我选择iphone 4-inch作为simulated metrics的大小。)
添加约束后,我调用layoutIfNeeded,因为我需要获取单元格的大小。我可以看到我的contentView 现在的大小与UITableViewCell 的大小相同。问题是UITableViewCell 的大小还没有适应屏幕的大小(我想它稍后会自动完成,因为我的单元格很好)。所以我仍然是 iphone 4 英寸的尺寸,而我使用的是 iphone 4.7 英寸。
有没有办法像使用layoutIfNeed 强制布局一样触发我的单元格的最终大小?
【问题讨论】:
-
什么时候调用
layoutIfNeed方法? -
在
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell中添加约束之后 -
我认为该单元格的超级视图当时为零。所以单元格的宽度不会更新为 tableView 的宽度。
-
实际上是我在故事板中的大小
-
是的,在添加到 tableView 之前它是默认大小。那么你为什么要获得 UITableViewCell 的宽度呢?
标签: ios swift uitableview autolayout