美文网首页
Xib设置UIScrollView, Label自适应高度.

Xib设置UIScrollView, Label自适应高度.

作者: 大笨刘 | 来源:发表于2020-01-14 12:12 被阅读0次

    相信不少同学使用Xib添加UIScrollView自动布局的时候,都会遇到明明约束都添加好了,还是报错。

    恐怕大多数原因都是因为contentSize没有正确设置导致的这个问题。

    因为需求要求加载HTML手机号码能点击拨打,于是我采用Label加载富文本,遇到一个问题,就是文本太长不能完全显示,还不能省略,于是我就想到把Label放在ScrollView上。

    先看下效果:

    Xib 使用 UIScrollView, UILabel自适应

    记录一下步骤:

    第一步

    添加scrollview,并添加约束设置显示范围。此处我以superview约束scrollview大小。

    设置scrollview显示范围

    此时会报错,没关系,我们继续

    第二步

    添加contentview。添加一个view到scrollview来作为container,设置上下左右距superview也就是说scrollview的上下左右为0。

    设置contentview

    第三步

    设置contentsize.width。也就是说把container撑开的第一步,此处因为需求是垂直滚动,我设置contentview的width与scrollview的宽度相同,注意是frame而不是contentsize的宽度,所以需要根据scrollview的superview添加约束,或者设置固定值。

    设置contentsize.width

    第四步

    设置contentsize.height。主角上场了,添加label,并设置label与contentview上下左右边距,因为contentview有了固定宽度,label设置为自动换行,label就会根据字符串长度自适应高度了,这样就会吧contentview撑开,使contentview有了固定高度。scrollview也就有了contentsize的height和width了。

    设置contentsize.height

    其实因为只有一个label,可以省略contentview,用label来代替,思路与上边相同,就是撑开scrollview。之所以添加contentview是因为开发过程中有可能在scrollview上添加多个空间,布局更为复杂,有了contentview,就可以很随意的添加控件,设置约束了。

    总结:

    一定要正确设置contentsize,也就是把scrollview的contentview"撑"开,无论是设置固定值,或者使用子view来给contentview一个固定的size。

    相关文章

      网友评论

          本文标题:Xib设置UIScrollView, Label自适应高度.

          本文链接:https://www.haomeiwen.com/subject/ubboactx.html