1
black 2014-11-29 13:50:58 +08:00 1
文档里有说:
The UIScrollView class scrolls its content by changing the origin of its bounds. To make this work with Auto Layout, the top, left, bottom, and right edges within a scroll view now mean the edges of its content view. 也就是说在UIScrollView里,subview不能依赖自身相对于scroll view的约束来得到自身的size,也就导致scroll view不能基于subview来确定自身的size。 所以,应该是只能将scroll view添加到一个view上去,然后定义scroll view的subview相对于那个view的layout constraint才能正常工作的。 |
3
jox OP 因为使用auto layout必须得调整view hierarchy才能配合scroll view使用,在有scroll view的地方我还是使用frame来布局,但是动态加载的view使用了auto layout,因为原本需要动态加载的view里面有很多控件,使用frame来布局很麻烦,需要写很多的代码来定位和调整尺寸以及间隙,使用auto layout就简单多了,这样在整体布局上因为主要就只有几个大的彼此独立的section,所以即使使用frame来布局也不会很麻烦,要想让auto layout和frame共存,trick就是对在storyboard里创建的对象使用
setTranslatesAutoresizingMaskIntoConstraints:NO 动态加载的view对象默认的translatesAutoresizingMaskIntoConstraints的值就是YES,所以不用管,直接设置frame的话在update constraint的过程中auto layout会自动生成需要的constraint |