我正在更新一个应用程序以在 iPhone 5 屏幕上运行(同时也保持旧的屏幕尺寸布局)。
我有一个包含视图控制器主视图的 xib 文件,其中有一个水平滚动视图作为子视图。此滚动视图的高度在 iPhone 5 屏幕上被垂直拉伸。
我在 xib 中也有三个视图(用作滚动视图中的页面),它们被添加到滚动视图中。我已经设置了所有最顶部视图的支柱和弹簧。我已将这些视图内的子视图的所有支柱和弹簧设置为关闭。
我的问题是子视图在 iPhone 5 屏幕上的位置不正确。具体来说,我有一个图像视图,它应该位于视图顶部附近,该视图被移动到底部(在其他子视图下方,当它们根本不应该重叠时)。在图像视图上将顶部支柱设置为打开会使其保持在视图的顶部,但我希望它与视图高度的变化成比例地向下移动。
在我的视图控制器的 viewDidLoad 中,我将页面添加到滚动视图中,如下所示:
_pageOne.frame = CGRectMake(0, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height);
[_scrollView addSubview:_pageOne];
_pageTwo.frame = CGRectMake(320, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height);
[_scrollView addSubview:_pageTwo];
_pageThree.frame = CGRectMake(640, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height);
[_scrollView addSubview:_pageThree];
视图在旧屏幕高度的 xib 中设置。我在调试器中检查了滚动视图已经在 viewDidLoad 中拉伸。
如何让我的子视图正确重新定位?
(将对评论的回复移至答案)