旋转时自动更新preferredContentSize
Posted
技术标签:
【中文标题】旋转时自动更新preferredContentSize【英文标题】:Automatically update preferredContentSize upon rotation 【发布时间】:2014-10-04 05:35:00 【问题描述】:我正在寻找一种方法来强制 UIPopoverPresentationController
自动调整大小以填充大部分屏幕,减去 50 个填充单位。
我首先尝试在viewDidLoad
中设置preferredContentSize
,然后检测何时发生旋转并将CGSize
更新为我可以计算的新大小。但由于某种原因,这在我的上下文中不起作用。我使用的是UIDeviceOrientationDidChangeNotification
,它通常会调用该方法,但当弹出框存在于照片编辑扩展程序中时,它不会被调用。
我想知道除了在检测到大小更改后手动更新preferredContentSize
之外,是否还有其他方法可以更改弹出框大小?如果没有,有没有办法在这种情况下从这个弹出框内检测旋转?
【问题讨论】:
【参考方案1】:试试这个:
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)
【讨论】:
以上是关于旋转时自动更新preferredContentSize的主要内容,如果未能解决你的问题,请参考以下文章