繁体   English   中英

iOS表格视图单元格动态尺寸-LayoutSubviews

[英]iOS Table View Cell Dynamic Size - LayoutSubviews

我试图调用[cell layoutIfNeeded]和[cell.contentView layoutIfNeeded],因为我有许多子视图,这些子视图具有在单元的layoutSubviews方法中实现的自定义约束逻辑。

但是,尽管在cellForRowAtIndexPath中调用了这两个方法,但是当我在contentView中检查子视图的框架时,它们的框架仍然不正确。 我确保也可以在每个子视图上调用layoutIfNeeded。

为什么会这样? 框架仅在显示单元格之后才是正确的,但是在此之前,高度的计算不正确。

编辑:

我正在尝试使用iOS 8中的新自动尺寸调整功能。它的大小无法正确调整,因为如果一个标签的尺寸大于另一个标签,我的标签去向有些复杂的逻辑。 这并不像将标签堆叠在一起那么简单-这就是为什么我需要在计算高度之前正确放置子视图。

我不确定在没有更多信息的情况下代码会发生什么,但是您应该考虑使用自动调整单元格大小。 这将自动调整单元格的大小,而无需处理布局子视图。

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 100
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

布局子视图解决方案仍在某些情况下使用,但主要在UITableViewAutomaticDimension出现之前使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM