如何在导航栏下快速修复视图

时间:2019-02-10 13:11:41

标签: swift uinavigationcontroller uinavigationbar ios-autolayout

我使用EzPopup库制作弹出窗口,将弹出窗口置于导航栏下时出现问题。 这是我的代码

@IBAction func showTopRightButton(_ sender: Any){
    guard let pickerVC = pickerVC else { return }

    pickerVC.delegate = self

    let popupVC = PopupViewController(contentController: pickerVC, position: .topRight(CGPoint(x: 0, y: navigationController!.navigationBar.frame.height+20)), popupWidth: 100, popupHeight: 200)

    popupVC.cornerRadius = 5
    present(popupVC, animated: true, completion: nil)
}

我遇到了像我的图像这样的问题 enter image description here

如何在iPhone X和iPhone X中实现相同

1 个答案:

答案 0 :(得分:0)

在iPhone X纵向模式下,状态栏更高-44点,而不是20点

您还需要添加statusBar框架高度。尝试以下代码:

//1.0 Get the Top bar height
let topBarHeight = UIApplication.shared.statusBarFrame.size.height + (self.navigationController?.navigationBar.frame.height ?? 0.0)

let popupVC = PopupViewController(contentController: pickerVC, position: .topRight(CGPoint(x: 0, y: topBarHeight)), popupWidth: 100, popupHeight: 200)

您可以在UILayout here上阅读更多信息。