iPhone 设备轮换上的弹出窗口更改

Posted

技术标签:

【中文标题】iPhone 设备轮换上的弹出窗口更改【英文标题】:iPhone Popup Changes on Device Rotation 【发布时间】:2019-01-20 05:03:15 【问题描述】:

我正在开发一个带有显示UIDatePicker 的弹出框的应用程序。我将其设置为始终是弹出视图,即使在手机上也是如此。它可以工作,直到我将设备旋转到横向。当我这样做时,弹出框会显示弹出框在 iPhone 横向模式下的正常显示方式。

这是纵向模式下的样子。这正是我想要的样子。

这里是横向模式:

在弹出窗口已经可见时转动设备或在设备转动后将其弹出都没有关系。这是我用来显示弹出窗口的代码。

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle 
    return .none


@IBAction func showPopUpDate(_ sender: UIButton) 
    let popoverVC = storyboard?.instantiateViewController(withIdentifier: "DateTimeSelectorView") as! DateVC

    popoverVC.modalPresentationStyle = .popover
    popoverVC.preferredContentSize = CGSize(width: 350, height: 350)
    popoverVC.labelTag = sender.tag

    if sender.tag == 0 
        popoverVC.showType = .date
        popoverVC.passedDate = date
    
    else 
        popoverVC.showType = .time
        popoverVC.passedDate = time
    

    if let popoverController = popoverVC.popoverPresentationController 
        popoverController.permittedArrowDirections = .any
        popoverController.sourceRect = CGRect(x: 0, y: 0, width: 20, height: 20)
        popoverController.delegate = self
        popoverController.sourceView = sender
        popoverVC.delegate = self

        present(popoverVC, animated: true, completion: nil)
    

如何进行设置以使弹出框继续看起来像在纵向模式下一样?

【问题讨论】:

【参考方案1】:

请在视图中添加垂直居中水平居中 约束

【讨论】:

请详细说明。我不确定你要我做什么。这一切都是通过故事板完成的。我将日期控件集中在视图中。在横向时弹出窗口的变化似乎是我需要覆盖的某种系统行为。

以上是关于iPhone 设备轮换上的弹出窗口更改的主要内容,如果未能解决你的问题,请参考以下文章

悬停在集群组上的弹出窗口

最大化每个页面上的弹出窗口

如何使用 webdriver 关闭网页上的弹出窗口

如何在移动设备上禁用放大弹出窗口?

在 Android 上的 Cordova 应用程序中的弹出窗口后面模糊

数据切换上的弹出窗口未在不同版本的引导程序中呈现