UINavigationBar栏高度没有变化

时间:2016-12-31 21:27:07

标签: swift uinavigationcontroller uinavigationbar

我有一个自定义UINavigationController,我只是调整高度,但我得不到结果: enter image description here

实际上我的主要代码是:(这将根据设备大小获得完美的高度)

class NavigationController1: UINavigationController {

let Theframe = UIScreen.main.bounds

override func awakeFromNib() {
    self.navigationBar.frame = CGRect.init(x: self.navigationBar.frame.origin.x*Theframe.width/375, y: self.navigationBar.frame.origin.y*Theframe.height/667, width:self.navigationBar.frame.width*Theframe.width/375, height: self.navigationBar.frame.height*Theframe.height/667)
}
}

但高度的高级代码也不起作用。

2 个答案:

答案 0 :(得分:3)

我通过放入viewWillLayoutSubviews()解决了这个问题 最终代码:

import UIKit

class NavigationController1: UINavigationController {

let Theframe = UIScreen.main.bounds

override func viewWillLayoutSubviews() {
    self.navigationBar.frame = CGRect.init(x: self.navigationBar.frame.origin.x, y: self.navigationBar.frame.origin.y, width:self.navigationBar.frame.width, height: 200)
 }
}

答案 1 :(得分:0)

由于sIze检查器,它可以被覆盖和重绘。在那里提出相同的要求,以确保它不会覆盖自定义代码。