一猎唁、關(guān)于navigation controller 和 navigation bar的使用
1.頁(yè)面隱藏navigation bar
override func viewWillAppear(animated: Bool) {
navigationController?.setNavigationBarHidden(true, animated: true)
//或者是 navigationController?.navigationBarHidden = true
}
2.父頁(yè)面隱藏nvigation bar,子頁(yè)面顯示navigation bar顷蟆。
在父頁(yè)面:
override func viewWillAppear(animated: Bool) {
navigationController?.setNavigationBarHidden(true, animated: true)
}
在子頁(yè)面:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBarHidden = false
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.navigationBarHidden = true
}
3.自定義navigation bar 的title 诫隅,和去掉push過(guò)來(lái)的前controller名字
override func viewWillAppear(animated: Bool) {
//自定義title
self.navigationController?.navigationBar.backItem?.title = ""
self.title = "獲取驗(yàn)證碼"
//去掉箭頭右邊文字xxx
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffset(horizontal: 0, vertical: -60), forBarMetrics: .Default)
}
效果如圖:屏幕快照 2015-12-31 17.09.16.png
4.navigation bar 僅保留箭頭,其余全不要
navigationItem.backBarButtonItem = UIBarButtonItem(title:"",style:.Plain,target:nil,action:nil)
5.滑動(dòng)時(shí)隱藏導(dǎo)航條
-
方法一. 在storyboard里勾選一個(gè)屬性“on swipe” 即可
屏幕快照 2016-05-08 21.23.45.png即可
方法二. 在代碼中寫(xiě)
override func viewWillAppear(animated: Bool) {
navigationController?.hidesBarsOnSwipe = true
}
6.定制 navigation bar
定制navigation bar 的 title 字體和顏色
if let barFont = UIFont(name: "Avenir-Light", size: 18.0) {
UINavigationBar.appearance().titleTextAttributes =
[NSForegroundColorAttributeName:UIColor(red: 255.0/255.0, green:
124.0/255.0, blue: 124.0/255.0, alpha: 1.0),NSFontAttributeName:barFont]
}
屏幕快照 2015-12-31 18.08.54.png
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.yellowColor()]
黃色.png
- 2.系統(tǒng)類型的按鈕或顏色
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
白色.png
- 3.改變navigation bar 的背景顏色
UINavigationBar.appearance().barTintColor = UIColor.blackColor()
黑色.png
- 4.使用自己的圖片帐偎,替換原來(lái)返回的圖片
UINavigationBar.appearance().backIndicatorImage = UIImage(named: "leftArrow")
UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named: "leftArrow")
二逐纬、關(guān)于tab bar的使用
1.定制tab bar item 顏色
//可以寫(xiě)在 app delegate里
UITabBar.appearance().tintColor = UIColor(red: 150.0 / 255.0, green: 118.0 / 255.0, blue: 214.0 / 255.0, alpha: 1.0)
效果如圖:屏幕快照 2015-12-31 18.29.00.png
2.隱藏 tab bar
//有些子頁(yè)面不需要tab bar,可以在子頁(yè)面的view will appear里加
tabBarController?.tabBar.hidden = true
3.改變tab bar下面字體的位置削樊。
選中“字體”豁生,然后在右側(cè)的title position中座修改。
改變bar item字體.png
三漫贞、 關(guān)于status bar的使用
改變狀態(tài)欄顏色(由默認(rèn)的黑色改成白色)
1.全局:所有頁(yè)面
在info里添加一個(gè)key“View controller-based status bar appearance”甸箱,值設(shè)為no。
屏幕快照 2015-12-31 18.40.28.png
然后在app delegate的這個(gè)方法里加一句話,
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UIApplication.sharedApplication().statusBarStyle = .LightContent
return true
}
2.局部:針對(duì)某一個(gè)頁(yè)面的狀態(tài)欄
- A.沒(méi)有導(dǎo)航條的情況下
在需要改變狀態(tài)欄顏色的頁(yè)面里加一個(gè)方法即可迅脐。
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
- B.有導(dǎo)航條(navigation bar)的情況下
override func viewWillAppear(animated: Bool) {
self.navigationController?.navigationBar.barStyle = .Black
}