1

我正在使用 iOS 6 和 Xcode 4.6,并使用 Interface Builder 添加到我的控制器 aUIScrollView中,它使用了所有可用空间。在此UIScrollView我添加了一些视图(a UIImageView、aUITextView和 a UITableView(我禁用了 theUITextView和 the的滚动UITableView))。

在里面 :

- (void) viewDidLayoutSubviews;

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

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

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

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

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

感谢您的帮助

4

1 回答 1

3

您在情节提要中启用了自动布局。当您滚动滚动视图时,自动布局运行并根据情节提要中的约束重置您的子视图框架。

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

于 2013-07-28T18:21:55.410 回答