动态单元格高度的自动布局约束

Posted

技术标签:

【中文标题】动态单元格高度的自动布局约束【英文标题】:AutoLayout Constraints For Dynamic Cell Height 【发布时间】:2014-12-05 09:08:02 【问题描述】:

我在堆栈溢出中搜索了很长时间,我发现了一些相关但不完美的问题。 有人可以详细解释一下根据表格视图单元格中的文本使标签增加高度的步骤是什么。我想增加标签高度,然后增加单元格高度。 谢谢。

【问题讨论】:

【参考方案1】:

对于 ios 8+,您可以找到解释和示例 here 对于 iOS 8 之前的版本,执行此操作更加复杂。您应该手动计算单元格的高度,然后在表格视图的委托方法中提供此高度(索引路径处的 heighForRow)。希望这会对你有所帮助。

【讨论】:

在没有任何代码的 ios 7 中,我们无法增加单元格高度,对吧?【参考方案2】:

归结为这个

 var myRowHeight: CGFloat = 100    //initialize this to some value close to what it will probably be

override func viewDidLoad() 
        //control row height for variable text size
        tableView.estimatedRowHeight = tableView.rowHeight
        tableView.rowHeight = myRowHeight
    

    override func viewWillAppear(animated: Bool) 
        //set row height right before view appears so autolayout has time to estimate it
        tableView.estimatedRowHeight = tableView.rowHeight
        tableView.rowHeight = UITableViewAutomaticDimension
    

这是适合我的解决方案。

【讨论】:

以上是关于动态单元格高度的自动布局约束的主要内容,如果未能解决你的问题,请参考以下文章

我可以设置我的自动布局约束,以便将图像视图设置为图像的高度

当单元格的高度略微增长时,为啥我的标签不遵守我的自动布局约束?

UITableViewCell 扩展自动布局

具有动态大小的单元格的复杂自动布局

UITableViewCell中的自动布局约束不匹配

仅通过自动布局确定 UICollectionView 单元格高度