我有一个自定义UINavigationController,我只是调整高度,但我得不到结果:
实际上我的主要代码是:(这将根据设备大小获得完美的高度)
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)
}
}
但高度的高级代码也不起作用。
答案 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检查器,它可以被覆盖和重绘。在那里提出相同的要求,以确保它不会覆盖自定义代码。