旋转时自动更新preferredContentSize

时间:2014-10-04 05:35:01

标签: ios swift rotation ios-app-extension

我正在寻找一种方法来强制UIPopoverPresentationController自动调整大小以填充大部分屏幕,减去50个单位的填充。

我首先尝试设置preferredContentSize中的viewDidLoad,然后检测轮换发生的时间并将CGSize更新为我可以计算的新大小。但由于某种原因,这在我的背景下不起作用。我正在使用通常调用该方法的UIDeviceOrientationDidChangeNotification,但是当照片编辑扩展中存在弹出框时,它不会被调用。

我想知道除了在检测到尺寸变化后手动更新preferredContentSize之外还有其他方法可以更改弹出窗口大小吗?如果没有,是否有办法在此上下文中检测此弹出窗口内的旋转?

1 个答案:

答案 0 :(得分:0)

尝试一下:

func isLandscape() -> Bool {
// your logical here
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        let myNewSize = isLandscape() ? mySizeLandscape : mySizePortrait
        self.preferredContentSize = myNewSize
        super.viewWillTransition(to: myNewSize, with: coordinator)
}