iOS開發技巧:設置導航欄全透明效果

前言

本篇是iOS開發技巧系列博客的第五篇,本篇主要和大家一起分享如何設置導航欄全透明效果。在實際開發中也經常會有這樣的需求,比如iPhone版本的QQ音樂,其播放音樂界面的導航欄就是透明的,如下所示:

這裏寫圖片描述

實現

爲簡化操作,這裏我們使用 storyboard 簡單搭建界面,爲視圖控制器添加導航欄,併爲其添加兩個 item 屬性(具體實現這裏不再闡述),如下所示:

這裏寫圖片描述

運行工程,效果如下:

這裏寫圖片描述

接下來,在 ViewController.swift 文件中添加如下代碼:

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // 1、設置視圖背景顏色
        self.view.backgroundColor = UIColor(white: 0.25, alpha: 1.0)

        // 2、設置導航欄標題屬性:設置標題顏色
        self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]
        // 3、設置導航欄前景色:設置item指示色
        self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()

        // 4、設置導航欄半透明
        self.navigationController?.navigationBar.translucent = true

        // 5、設置導航欄背景圖片
        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)

        // 6、設置導航欄陰影圖片
        self.navigationController?.navigationBar.shadowImage = UIImage()
    }
}

現在導航欄全透明效果已經實現了,爲了看起來效果更佳,我們還需要修改下狀態欄的樣式,大家可參考 這篇博客,此處不再闡述。運行工程,我們即可看到如下效果了:

這裏寫圖片描述

Tips

1、如果在導航欄全透明效果下,你需要導航欄的分界線,你可以不設置導航欄的shadowImage屬性,即上述代碼中的第6步可不要。

2、通過同樣的方法,我們也可以設置標籤欄的全透明效果。

發佈了95 篇原創文章 · 獲贊 148 · 訪問量 39萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章