【问题标题】:iOS: Presentation controller frame size changes on device orientationiOS:演示控制器帧大小随设备方向变化
【发布时间】:2019-05-01 03:38:32
【问题描述】:

如何在设备方向更改时保持演示控制器高度相同。下面是代码:

    func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController? {
        return MyPresentationController(presentedViewController: presented, presentingViewController: presenting)
    }

    class MyPresentationController : UIPresentationController {
        override func frameOfPresentedViewInContainerView() -> CGRect {

        let controllerHeight:CGFloat = 200.0
        let width = UIScreen.main.bounds.width
        let height = UIScreen.main.bounds.height

        return CGRect(x: 0.0, y: height - controllerHeight, width: width, height: controllerHeight)
        }
    }

    let pvc = MyPresentationController()
    pvc.modalPresentationStyle = UIModalPresentationStyle.Custom
    pvc.transitioningDelegate = self

Here is the code sample

【问题讨论】:

    标签: ios device-orientation uipresentationcontroller


    【解决方案1】:

    我想我找到了解决方案。也许不是很直观,但它确实有效。下面是在我的示例中可以使用的代码。

    我正在解散并代表“viewWillTransition”上的控制器

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    
            if let pvc = presentedViewController {
                pvc.dismiss(animated: true) {
                    DispatchQueue.main.async {
    // your presentedViewController
                        self.performSegue(withIdentifier: "sampleSegue",
                                          sender: nil)
                    }
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      相关资源
      最近更新 更多