【问题标题】:ViewController Containment - Child ViewController not sizing correctly in LandscapeViewController Containment - 子 ViewController 在横向中未正确调整大小
【发布时间】:2014-05-26 11:39:28
【问题描述】:

应用设置为仅支持横向模式。

自定义的UIViewController有如下代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    MBMainViewController *mainViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MBMainViewController"];

    [self addChildViewController:mainViewController];
    [self.view addSubview:mainViewController.view];
    [mainViewController didMoveToParentViewController:self];

    self.mainViewController = mainViewController;
}

启动应用时,子视图控制器 (mainViewController) 的视图框架仍设置为肖像的尺寸。

我是否遗漏了什么,所以在子视图控制器的视图上设置了正确的帧大小?

【问题讨论】:

    标签: ios cocoa-touch uiview uiviewcontroller landscape


    【解决方案1】:

    这显然只发生在从情节提要实例化的 UIViewController 上。在这种情况下,它只有在我们设置属于子视图控制器的视图的autoresizingMask 时才有效:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        MBMainViewController *mainViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MBMainViewController"];
    
    // Set the autoresizingMask as a fix
        mainViewController.view.autoresizingMask = UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleHeight;
    
    
        [self addChildViewController:mainViewController];
        [self.view addSubview:mainViewController.view];
        [mainViewController didMoveToParentViewController:self];
    
        self.mainViewController = mainViewController;
    }
    

    我的猜测是,当您从情节提要中实例化视图控制器时,已经设置了约束,或者它没有带有正确的 autoresizingMask 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多