sizeToFit 和 sizeThatFits 的区别

项目中我们经常会,用到动态计算文字宽高,而苹果官方就给我们提供了这样的方便 sizeToFitsizeThatFits:

sizeToFit 和 sizeThatFits 的区别

先来说下 sizeToFit 先看效果:sizeToFit 和 sizeThatFits 的区别
sizeToFit 和 sizeThatFits 的区别

label.text 赋值后即使frame宽高都是0 也不影响效果。 sizeToFit 会根据 字体大小 和多少计算出最优的 size 并改变自身的 size。

那再来看看sizeThatFits:的效果:sizeToFit 和 sizeThatFits 的区别
sizeToFit 和 sizeThatFits 的区别

sizeThatFits 返回计算的size 不改变自身size , 此方法传入的size 是根据指定size 范围来计算得出的size CGSizeMake(100, CGFLOAT_MAX), 没有指定 size 需求的话可 [label sizeThatFits:CGSizeZero]; 但这样高度不会变化 。

sizeThatFitssizeToFit 当设置多行显示时,两者又体现出区别,sizeThatFits并不会折行显示,sizeToFits会在设置的宽度内这行显示。这实际上又从另一方面验证了官方的解释。

知其然,更要知其所以然,学习没有捷径,坚持和专研是硬道理,多分享则乐趣无穷!欢迎关注后续博文!