swift - UINavigationBar 栏高度没有改变

标签 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)
}
}

但是上面的高度代码也不起作用。

最佳答案

我通过放入 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)
 }
}

关于swift - UINavigationBar 栏高度没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411824/

相关文章:

ios - 在 iOS 中,如何根据环境(dev、hom、prod)更改启动屏幕图像?

ios - 如何在 sks 文件 "SpriteKit action"中的 Xcode Action 编辑器上获取所有 Action 名称

ios - UINavigationController 未正确推送

iOS7 UINavigationController pushViewController :animated back to back with animation locks up the main thread

ios - iOS 13 中 UISplitViewController 的详细信息 Pane 中出现了新的 UINavigationBar

ios - 如何在所有 View 中拥有一个 UIViewController 但不与所有 View 相关

objective-c - 将 Objective-C 对象向下转换为 Swift 类型失败(静默)

ios - 在 iOS 中调试时推送 viewController 不工作

ios - UITableView 中缺少 UINavigationBar

ios - 导航栏上的常用栏按钮项