我正在使用iOS 6和Xcode 4.6,并且使用Interface Builder,我在控制器中添加了UIScrollView
,它使用了所有可用空间。在此UIScrollView
中,我添加了一些观看次数(UIImageView
,UITextView
和UITableView
(我禁用了UITextView
和{{1}的滚动}))。
在:
UITableView
方法我通过增加高度来调整所有视图的大小(以适应各自的内容)。
然后,我设置了- (void) viewDidLayoutSubviews;
的contentSize,使其符合其内容(我的3个视图)。
调整大小有效,我可以在运行时在应用程序中看到它们。 此外,滚动很好(contentSize是正确的,因为我可以滚动)。
但是,我有一个大问题:只要我滚动,我的3个视图就会调整为它们的初始大小(而不是保持我通过frame属性分配它们的大小)。
我的所有视图都通过Interface Builder添加到我的故事板中。
你知道我做错了什么吗?滚动时为什么我的UIScrollView
内容会重置其大小?
感谢您的帮助
答案 0 :(得分:3)
您在故事板中启用了自动布局。滚动滚动视图时,自动布局会根据故事板中的约束运行并重置子视图帧。
有几种方法可以解决这个问题。一种方法是在故事板中关闭自动布局。另一种方法是将插座连接到故事板中的约束,并更新约束(而不是设置框架)以使自动布局将视图放在您想要的位置。