前言
本篇是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、通過同樣的方法,我們也可以設置標籤欄的全透明效果。