网上有很多关于UIScrollView的自动布局的文章 这里只写我的一些心得。
UIScrollView在开发中经常用到,但是在使用AutoLayout是非常非常坑爹,设置不好,各种错误层出不穷,在我看来就是因为UIScrollView的ContentSize在搞鬼。 因为在AutoLayout下,UIScrollView是由其内部视图来决定自己的ContentSize,只有确定了UIScrollView的所有Subviews的约束,才能正确设置UIScrollView的约束。
简单来说,UIScrollView只有一个子视图,那么UIScrollView就会根据子视图的高度与宽度设置自身的ContentSize。
如果UIScrollView有多个子视图,那么UIScrollView就会根据这多个子视图的宽高来确定ContentSize(宽高要确定)。
三个子视图的约束都确定了之后,UIScrollView的约束才正确。
举个例子,现在需要设计一个注册页面,如下图:
乍一看,没什么问题,但是如果把适配要求也加入进去的话,就会出现这种情况
小尺寸的屏幕会因为页面设计原因,有一部分设计没显示出来,这个时候就需要使用UIScrollView。
在使用AutoLayout来对UIScrollView进行约束的时候,我建议将UIScrollView的subviews分为多个模块,以注册页面为例,可将UIScrollView的subviews分为三个模块,