【问题标题】:How do I change UINavigationBar height programmatically?如何以编程方式更改 UINavigationBar 高度?
【发布时间】:2014-11-11 03:35:21
【问题描述】:

如何使用代码 int iOS8 swift 更改 UINavigationBar 高度?

我尝试过使用:

UINavigationBar.resizableSnapshotViewFromRect

UINavigationBar.drawViewHierarchyInRect

UINavigationBar.frameForAlignmentRect

这些似乎都无法做到这一点。

【问题讨论】:

    标签: ios swift uinavigationbar


    【解决方案1】:

    这是给你的例子:

    import UIKit
    
    class BaseViewConroller: UIViewController {
    var navBar:UINavigationBar=UINavigationBar()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setNavBarToTheView()
        // Do any additional setup after loading the view.
        self.title="test test"
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func setNavBarToTheView()
    {
        navBar.frame=CGRectMake(0, 0, 320, 50)  // Here you can set you Width and Height for your navBar
        navBar.backgroundColor=(UIColor .blackColor())
        self.view .addSubview(navBar)
    }
    
    }
    

    【讨论】:

    • 谢谢Kheni,但我想改变导航栏的高度,而不是添加一个新的。例如,当移动屏幕旋转时,navBar 高度从 80 变为 40。
    • 来自 Apple 文档:“允许使用 UINavigationBar 类的方法和属性自定义导航栏的外观,但您绝不能更改其框架、边界或 alpha 值或修改其直接查看层次结构。要显示或隐藏导航栏,您应该始终通过导航控制器更改其 navigationBarHidden 属性或调用 setNavigationBarHidden:animated: 方法。"
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2023-01-17
    • 2016-01-28
    • 2018-04-28
    • 2021-10-14
    • 2014-11-21
    • 2014-01-22
    相关资源
    最近更新 更多