【问题标题】:Managing dynamic height for UITableviewCell using iOS 8使用 iOS 8 管理 UITableviewCell 的动态高度
【发布时间】:2015-01-11 22:40:22
【问题描述】:

我正在尝试 iOS 8 中 UITableViewCell 动态高度的自动布局功能,我关注了这个博客 http://www.appcoda.com/self-sizing-cells/。所以在这里他们提到从 iOS 8 管理动态高度是无忧无虑的。(在链接中他们使用了 swift,但我使用的是 Objective C)

现在从xib做autolayout之后,我们只需要在viewDidLoad中写这行代码

- (void)viewDidLoad
{
    m_tableView.estimatedRowHeight = 83.0f;
    m_tableView.rowHeight = UITableViewAutomaticDimension;
}

这很好,我的 tableView 高度会根据内容动态变化。

我想知道如何更好地控制 UITableViewCell 的高度。

1) 在我的应用程序中,我希望单元格高度基于内容(数据),但我需要有一个默认高度,如果内容高度小于默认高度,则会应用该高度。

2) 在向用户显示之前,我想知道单元格的最终高度是多少,因为我想在每个单元格下方添加一些 UI 元素。

那么我需要使用哪些功能来完成我的任务。

【问题讨论】:

    标签: ios uitableview ios8 autolayout


    【解决方案1】:

    您需要确保您的故事板原型单元从上到下都有NSLayoutConstraints。考虑到cellForRowAtIndexPath 中设置的内容,动态单元格大小会将您现有的任何布局约束压缩到最大压缩,以计算该单元格的最终渲染高度。这非常方便,但也意味着您需要小心正确设置约束。

    如果您以编程方式添加任何子视图,则需要确保相同的经验法则是正确的 - 从单元格的 contentView 顶部到底部存在一组完整的、确定性的约束。此外,您需要将代码translatesAutoResizingMaskIntoConstraints 属性中添加的任何子视图设置为NO

    【讨论】:

    • 你好@Keller,我没有正确理解你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    相关资源
    最近更新 更多