代码之家  ›  专栏  ›  技术社区  ›  Peter

模态解除后ViewController垂直位移20px:仅iOS4。包含示例代码

  •  0
  • Peter  · 技术社区  · 14 年前

    我的问题最好用示例项目来说明,该项目可以从以下URL下载:

    http://www.hitsalive.com/tmp/VCTest.zip

    在示例项目中,我有一个 UIViewController presentModalViewController 另一个使用“addSubView”(使用AppDelegate)。分别为按钮和 UIView控制器 我们工作得很好。

    dismissModalViewControllerAnimated: YES )然后显示第二个( addSubView UIView控制器 ,然后是第二个视图中的所有元素和子视图 (例如示例中的按钮)垂直向下移动20个像素。位移的发生有一个瞬间的延迟。

    这个问题在sdk3.2及更低版本中不会发生——只有iOS4。

    任何帮助都将不胜感激,特别是关于上述示例项目。

    2 回复  |  直到 11 年前
        1
  •  1
  •   RolandasR    14 年前

    添加 [aViewControllerTwo setWantsFullScreenLayout:YES]; 给你的 - (void)flipToViewControllerTwo ViewControllerTwo *aViewControllerTwo = [[ViewControllerTwo alloc] initWithNibName:@"ViewControllerTwo" bundle:[NSBundle mainBundle]];

        2
  •  1
  •   PeeHaa    13 年前

    为了解决这个问题,您需要对出现偏移的视图控制器执行以下操作:添加一个帧,然后适当地设置该帧的位置。将此框架设置为ViewController的视图。

    shiftedViewController* ShiftedViewController = [[ShiftedViewController alloc] init ];
    
    CGRect theFrame = [shiftedViewController.view frame];
    theFrame.origin.y = 20;
    theFrame.origin.x=0;
    [shiftedViewController.view setFrame: theFrame];
    
    
    
    [self presentModalViewController:shiftedViewController          
                        animated:YES];