如何根据设备更改导航栏的大小?

时间:2016-10-04 20:48:16

标签: ios swift autolayout

我使用iOS 9约束以编程方式设置我的应用的布局。我理解以编程方式创建导航栏我会执行以下操作:

let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: My_Height))

问题是,我希望导航栏的高度随着设备的变化而变化,以使其与约束成比例。我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

您必须将高度常量设置为约束,以编程方式制作出口并按比例计算

答案 1 :(得分:0)

您可以使用以下方法找到屏幕尺寸:

var screenWidth: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.width
    } else {
        return UIScreen.mainScreen().bounds.size.height
    }
}
var screenHeight: CGFloat {
    if UIInterfaceOrientationIsPortrait(screenOrientation) {
        return UIScreen.mainScreen().bounds.size.height
    } else {
        return UIScreen.mainScreen().bounds.size.width
    }
}
var screenOrientation: UIInterfaceOrientation {
    return UIApplication.sharedApplication().statusBarOrientation
}

然后,您可以根据屏幕的高度或宽度自定义导航栏的大小。