滚动视图的内容在滚动时会改变大小

时间:2013-07-28 14:11:17

标签: ios xcode4 interface-builder

我正在使用iOS 6和Xcode 4.6,并且使用Interface Builder,我在控制器中添加了UIScrollView,它使用了所有可用空间。在此UIScrollView中,我添加了一些观看次数(UIImageViewUITextViewUITableView(我禁用了UITextView和{{1}的滚动}))。

在:

UITableView

方法我通过增加高度来调整所有视图的大小(以适应各自的内容)。 然后,我设置了- (void) viewDidLayoutSubviews; 的contentSize,使其符合其内容(我的3个视图)。

调整大小有效,我可以在运行时在应用程序中看到它们。 此外,滚动很好(contentSize是正确的,因为我可以滚动)。

但是,我有一个大问题:只要我滚动,我的3个视图就会调整为它们的初始大小(而不是保持我通过frame属性分配它们的大小)。

我的所有视图都通过Interface Builder添加到我的故事板中。

你知道我做错了什么吗?滚动时为什么我的UIScrollView内容会重置其大小?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您在故事板中启用了自动布局。滚动滚动视图时,自动布局会根据故事板中的约束运行并重置子视图帧。

有几种方法可以解决这个问题。一种方法是在故事板中关闭自动布局。另一种方法是将插座连接到故事板中的约束,并更新约束(而不是设置框架)以使自动布局将视图放在您想要的位置。