我正在寻找一种方法来强制UIPopoverPresentationController
自动调整大小以填充大部分屏幕,减去50个单位的填充。
我首先尝试设置preferredContentSize
中的viewDidLoad
,然后检测轮换发生的时间并将CGSize
更新为我可以计算的新大小。但由于某种原因,这在我的背景下不起作用。我正在使用通常调用该方法的UIDeviceOrientationDidChangeNotification
,但是当照片编辑扩展中存在弹出框时,它不会被调用。
我想知道除了在检测到尺寸变化后手动更新preferredContentSize
之外还有其他方法可以更改弹出窗口大小吗?如果没有,是否有办法在此上下文中检测此弹出窗口内的旋转?
答案 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)
}