当前位置:  开发笔记 > IOS > 正文

为什么我的iPad布局不能在旋转时重新调整?

如何解决《为什么我的iPad布局不能在旋转时重新调整?》经验,为你挑选了0个好方法。

我有一个适用于iPad的Split View控制器,它应该支持两种方向(纵向和横向).

问题是,当我更改设备的方向时,细节视图不会重新调整以使用整个空间,并且会出现灰色方块.

在此输入图像描述

我不认为这是约束的问题,因为这只有在我旋转时才会发生:

当我以纵向模式启动应用程序时,布局加载良好.

当我以横向模式启动应用程序时,布局加载良好.

在此输入图像描述

在SplitViewController(以及DetailsController)中我尝试了这段代码:

在viewDidLoad中:

 NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil)

然后:

override func shouldAutorotate() -> Bool {
    print("should rotate --> true")
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    print("we support all orientations")
    return UIInterfaceOrientationMask.All
}

override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
    print("preferred orientation for presentation is landscape")
    return UIInterfaceOrientation.LandscapeLeft
}

func rotated(){
    print("rotatiooooonn ------------")
    refreshIpad()
    detailSplitViewController.refreshUI()
}

func refreshIpad (){
    dispatch_async(dispatch_get_main_queue(),{
        self.view.setNeedsLayout()
    })
}

在日志中我得到了这个(所以每当方向发生变化时我都可以看到)

should rotate --> true
we support all orientations
rotatiooooonn ------------

以下是信息文件:

在此输入图像描述

编辑

故事板: 在此输入图像描述

细节视图中的约束:

在此输入图像描述

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有