0

我正在更新一个应用程序以在 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 中拉伸。

如何让我的子视图正确重新定位?


(将对评论的回复移至答案)

4

1 回答 1

0

实际上,我通过在图像视图上设置顶部和底部支柱、打开垂直弹簧并将图像视图的 contentMode 设置为 UIViewContentModeCenter 来解决我的问题。

但这是我设置视图的方式:

在此处输入图像描述

这是 iPhone 5 上的结果。

在此处输入图像描述

我没有意识到我的图像视图就在我的视图顶部。我尝试将图像视图向下移动一点,并关闭所有支柱和弹簧,一切都开始按预期运行:

在此处输入图像描述 在此处输入图像描述

于 2012-10-14T14:55:02.243 回答