iOS8新功能——Self Sizing Cells和Dynamic Type

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

Self Sizing Cell对于支持Dynamic Type非常有用。你可能没听说过Dynamic Type,但你可能见过系统的“Settings”屏幕:

Dynamic Type最初由iOS 7引入,允许用户自定义文本大小从而满足app的需要。不过仅有采用Dynamic Type的app才能响应文本的改变,可能只有一小部分第三方应用使用了该功能。

从iOS 8开始,苹果想要鼓励开发者使用Dynamic Type。正如在WWDC session中提到的那样,所有苹果系统级应用都使用了Dynamic Type,并且内置的标签已经有了动态字体。当用户改变文本大小时,这些标签也会改变其大小。

更进一步说,Self Sizing Cell的引入是促进Dynamic Type使用的办法,它可以节省大量写代码调整行高的时间。如果单元格可以自动调整了,那么使用Dynamic Type就很显而易见了。

你只需要从尺寸固定的自定义字体中将字体更改为文本类型(比如标题和内容主体)首选的字体。也就是说当你运行app时,它会适应文本大小的改变。

总结

苹果鼓励使用新功能,并更新app以支持Dynamic Type。使用Self Sizing Cell,仅需两行代码,就可以适应单元格中的动态内容。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值