在方向更改时正确自动调整所有UIScrollView子视图

时间:2011-08-08 13:35:17

标签: iphone ios uiscrollview rotation autoresize

我有:

  • 1个底部的分页滚动视图(如面板),最初为768x100像素,当iPad旋转到横向时,设置为拉伸到1024.
  • 2个子视图,每个768x100像素大;一个在原点0,0,一个在原点768,0。在纵向中,用户可以向左和向右滑动以在这些面板之间切换。

当我旋转到横向时,即使自动调整正确,子视图仍保持相同的大小。它们也保持在同一位置,这意味着右侧窗格现在从右侧出现256像素“in”。

使用自动调整无法修复此问题吗?我是否必须手动调整旋转子视图?

3 个答案:

答案 0 :(得分:0)

如果界面构建器方法不起作用或者您需要重新排列复杂的子视图,那么您可以这样做 -

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
       interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        /* handle resizing here*/
    }
    else if(interfaceOrientation == UIInterfaceOrientationPortrait || 
            interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
    }
}

我可能是错的,也是check this

答案 1 :(得分:0)

据我所知,您必须手动调整子视图。因为UIScrollView的contentSize属性定义了Span& Zoom显示的视图的大小。它通常与容器(即滚动视图)大小没有任何关系。

答案 2 :(得分:-1)

您可以在界面构建器上使用自动调整大小。