Self Sizing Cells
在iOS 8中,苹果引入了UITableView的一项新功能--Self Sizing Cells,对于不少开发者来说这是新SDK中一项非常有用的新功能。在iOS 8之前,如果想在表视图中展示可变高度的动态内容时,你需要手动计算行高,而Self Sizing Cells为展示动态内容提供了一个解决方案。以下是你使用Self Sizing Cells时需要注意的事项:
1.为原型单元格定义Auto Layout约束
2.指定表视图的estimatedRowHeight
3.将表视图的rowHeight属性设置为UITableViewAutomaticDimension
如果用代码表示最后两点,那就是
tableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableViewAutomaticDimension
这两行代码通知表视图计算单元格的尺寸以匹配内容和,动态进行渲染。Self Sizing Cells功能可以为你节省大量写代码的时间!
示例:
1.在IB中为label添加约束,如下图:
2.设置lines为0:
3.在viewdidload中添加如下代码:
tableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableViewAutomaticDimension运行效果;
真是省时省力啊!!!
Dynamic Type
从iOS 8开始,苹果想要鼓励开发者使用Dynamic Type。正如在WWDC session中提到的那样,所有苹果系统级应用都使用了Dynamic Type,并且内置的标签已经有了动态字体。当用户改变文本大小时,这些标签也会改变其大小。
更进一步说,Self Sizing Cell的引入是促进Dynamic Type使用的办法,它可以节省大量写代码调整行高的时间。如果单元格可以自动调整了,那么使用Dynamic Type就很显而易见了。
你只需要从尺寸固定的自定义字体中将字体更改为文本类型(比如标题和内容主体)首选的字体。也就是说当你运行app时,它会适应文本大小的改变。
总结
苹果鼓励使用新功能,并更新app以支持Dynamic Type。使用Self Sizing Cell,仅需两行代码,就可以适应单元格中的动态内容。