美文网首页iOS大咖说
[iOS] UINavigationBar 的一些设置 (Swi

[iOS] UINavigationBar 的一些设置 (Swi

作者: 老初 | 来源:发表于2015-12-11 00:35 被阅读4476次
    • 全局修改导航栏的背景色、按键颜色、标题颜色,在 AppDelegate.swift 中 添加(只有放在这里有效):
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
        // Bar's background color
        UINavigationBar.appearance().barTintColor = UIColor.grayColor()
            
        // Back button and such
        UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    
        // Title's text color
        UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.redColor()]
            
        return true
    }
    
    • �隐藏导航栏,这个时候按钮是显示的:
    override func viewDidLoad() {
        super.viewDidLoad()
    
        navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
        navigationController?.navigationBar.shadowImage = UIImage()
    }
    
    • 定义子页面返回键的文字文本,不显示设置为""就可:
    // 在主界面中
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "返回", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
    
    • 标题:
    // 修改当前标题文本 
    // 方法1
    self.title = "HaHa"
    
     // 方法2 (不建议使用)
    let titleLabel = UILabel(frame: CGRectMake(0, 0, view.frame.size.width - 120, 44))
    titleLabel.textAlignment = NSTextAlignment.Center
    titleLabel.text = "Title"
    self.navigationItem.titleView = titleLabel
    // or
    self.navigationController?.navigationBar.topItem?.titleView = titleLabel
    
    // 修改当前标题颜色
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
    
    • 按钮状态,以导航栏右侧的为例:
    self.navigationItem.rightBarButtonItem?.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.greenColor()], forState: UIControlState.Disabled)
    self.navigationItem.rightBarButtonItem?.enabled = false         
    
    • 添加按钮:
    // 在右侧添加一个按钮
    let barButtonItem = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.Plain, target: self, action: "tapBarButton")
    self.navigationItem.rightBarButtonItem = barButtonItem
    
     // 往右侧添加多个按钮
    let item1 = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.Plain, target: self, action: "tapBarButton")
    let item2 = UIBarButtonItem(title: "Refresh", style: UIBarButtonItemStyle.Plain, target: self, action: "tapBarButton")
    // 第一个在最右侧
    self.navigationItem.rightBarButtonItems = [item1, item2]
    
    • 解决 Push ViewController 过程中右上角有黑影的问题
    self.navigationController?.view.backgroundColor = UIColor.whiteColor()
    

    相关文章

      网友评论

      • d8bcc2d67657:哈啰
        搂搂好
        想问一下
        我在 TableViewController 里面放 NavigationItem 再放入 Bar Button Item
        我在 viewDidLoad 里写入
        self.navigationItem.backBarButtonItem.tintColor = UIColor.white
        却不见有任何作用,颜色并没有改变。
        不知是不是我弄错属性,还是不能写在 ViewDidLoad. 里?

      本文标题:[iOS] UINavigationBar 的一些设置 (Swi

      本文链接:https://www.haomeiwen.com/subject/cldyhttx.html