cell的自动高度计算

这次找到比“frame模型”和第三方自动布局代码更简单的方式,就是苹果自己的API。
两行代码就可以搞定这一切!
tableView.estimatedRowHeight = 85.0 //指定cell大概的高度(为了使scrollview的滚动提示器变化更加平滑,提升用户体验)

tableView.rowHeight = UITableViewAutomaticDimension(把计算行高的工作交给自动布局系统)

要注意:a. 布局中的子控件至少要给cell一个垂直的“压力”让cell知道自己要变高或者变矮,也就是说垂直方向的约束要连接得当才能让cell实现高度的变化。b. 这个方法只适合布局格式一样的cell,如果某个控件可有可无,可能会影响效果。c. 如何应付b中的特殊情况:给不同布局格式的cell以不同的reuse identifier,这样就可以保证它们在被重用的时候,控件的约束是它们对应的那一套,而不是乱套。d. 不要和heightForRowAtIndexPath一起用...你懂的......

最后推荐一篇stack,里面解释的更加详细,还有对约束优先级的介绍…
Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

还有苹果的官方文档作为参考:
Working with Self-Sizing Table View Cells

我的测试代码:
点这里

你可能感兴趣的:(cell的自动高度计算)