【问题标题】:Automatically update preferredContentSize upon rotation旋转时自动更新preferredContentSize
【发布时间】:2014-10-04 05:35:00
【问题描述】:

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

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

我想知道除了在检测到大小更改后手动更新preferredContentSize 之外,是否还有其他方法可以更改弹出框大小?如果没有,有没有办法在这种情况下从这个弹出框内检测旋转?

【问题讨论】:

    标签: ios swift rotation ios-app-extension


    【解决方案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)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2021-08-20
      • 2011-10-23
      • 1970-01-01
      相关资源
      最近更新 更多