喜欢xib布局的同学,大概多多少少都会遇到往UIScrollView里子视图添加约束时报莫名其妙的红色冲突问题,这要归咎于UIScrollView
是一个的特殊控件,导致对他的子视图进行添加约束时也得用特殊方法。接下来简单的描述下往UIScrollView里的子视图添加约束的主要步骤。
1. 为了便于后续好对UIScrollView里的各个子控件增加不同约束,最好只往UIScrollView添加一个子视图作为后续添加其他控件的父视图
操作:添加一个View A 到UIScrollView里,并设置其距离UIScrollView上下左右间距都为0
2. 如何确定 UIScrollView contentSize呢?
a. 如果UIScrollView要求为左右滚动:这时需要View A 宽度约束(设置的宽度即为UIScrollView内容宽度,高度不要设置!奇怪吧!),同时还得设置View A 在UIScrollView中垂直居中。(即勾选 Vertically in Container 约束),此时更新下红色约束没了。
b. 如果UIScrollView要求为上下滚动:这时需要View A 高度约束(设置的高度即为UIScrollView内容高度,宽度不要设置),同时还得设置View A 在UIScrollView中水平居中。(即勾选 Horizonatally in Container 约束)。
c.如果UIScrollView要求为同时支持上下滚动与左右滚动:此时需要同时设置 View A 宽度约束与高度约束,其设置的宽度高度即是UIScrollView contentSize。但不能在设置其垂直居中与水平居中约束。
3.最后把其他需要添加的子控件往View A里,这时对其子控件(相对于view A)设置其它约束跟普通就没啥区别了。