正确调整iPhone 5屏幕的视图定位

时间:2012-10-05 14:50:39

标签: ios uiview

我正在更新应用程序以在iPhone 5屏幕上运行(同时保持旧的屏幕尺寸布局)。

我有一个包含视图控制器主视图的xib文件,其中包含一个水平滚动视图作为子视图。此滚动视图的高度在iPhone 5屏幕上垂直拉伸。

我在xib中有三个视图(用作滚动视图中的页面),它们被添加到滚动视图中。我已经为最顶层的视图设置了所有的支柱和弹簧。我已将这些视图中的子视图的所有struts和spring设置为off。

我的问题是子视图无法在iPhone 5屏幕上正确定位。具体来说,我有一个图像视图应该位于视图顶部附近,该视图将被移动到底部(在其他子视图下面,当它们根本不应该重叠时)。在图像视图中将顶部支柱设置为on会使其保持在视图的顶部,但我希望它与视图高度的变化成比例地向下移动。

在我的视图中,控制器的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中拉伸。

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


(移动回复评论回答)

1 个答案:

答案 0 :(得分:0)

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

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

enter image description here

这是iPhone 5上的结果。

enter image description here

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

enter image description here enter image description here