美文网首页
Auto Layout的异类-UIScrollView

Auto Layout的异类-UIScrollView

作者: 小冰山口 | 来源:发表于2019-11-07 13:11 被阅读0次

本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java, 数据结构与算法, iOS, 安卓, python, flutter等等, 如有需要, 联系微信tsaievan.

最近在看这本书:
iOS开发捷径

里面有句话说的很好:

无论按什么思路设置scrollView的约束,一定要让设置的约束能够确定scrollViewcontentSize, 这是重点, 也是核心思想.

于是, 不管是"拖线"布局, 还是Masonry布局, 都可以遵循这么个思想来进行.

先说"拖线"布局
image.png

讲道理来说, 我这里设置了x, y, width,height之后, scrollView就应该固定住了, 布局是完美的. 但是不是, 布局的线还是报红的.
这就是scrollView的特殊之处, 必须确定了contentSize之后才可以完美布局.

我们怎么给contentSize呢?

  • 首先, 给scrollView添加一个contentView
    给`scrollView`添加一个`contentView`

这个contentView的上下左右边距都跟scrollView是对齐的. 这时候, 约束还是没有任何变化, 还是报红

  • 然后, 假设我是要上下滚动, 我就将contentView的水平方向跟scrollView居中对齐, 这时候就确定了scrollViewcontentSize的宽
image.png
  • 最后给contentView设定一个高度, 这个高度实际上就是contentSize的高
    image.png
    contentSize的宽和高都确定了, 那么布局就完美了. 布局的线也变成了蓝色
再说Masonry布局

思路都一样, 也就是那么几步


image.png

例子中写得比较简单, 高度写死了, 实际布局中, 高度是根据子view的高度不断变化的, 这个就要举一反三了, 总之记住:

scrollView的布局不仅仅要确定x,y, width, height. 还要确定contentSizewidthheight, 而contentSizewidthheight, 是由其子view来决定的.

相关文章

网友评论

      本文标题:Auto Layout的异类-UIScrollView

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