你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 奔五的人學iOS:swift對 狀態欄、導航條若干技巧

奔五的人學iOS:swift對 狀態欄、導航條若干技巧

編輯:IOS開發綜合

1、狀態欄反色

a.在info中添加View controller-based status bar appearance,並將值設置 NO,表明不由系統控制,由vc自己控制;

b.在viewWillApear中使用以下代碼實現反色

UIApplication.shared.setStatusBarStyle(UIStatusBarStyle.lightContent, animated: true)
//UIApplication.shared.statusBarStyle = .lightContent

c.在viewWillDisapper中使用以下代碼實現恢復
UIApplication.shared.setStatusBarStyle(UIStatusBarStyle.default, animated: true)
//UIApplication.shared.statusBarStyle = .default

兩句效果一樣,只是一種有動態效果,另外有人說override preferredStatusBarStyle,本人試了,不管用。


2、導航條透明以及文字顏色、其他按鈕顏色

        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        
        self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
        self.navigationController?.navigationBar.tintColor = UIColor.white

以上代碼在viewWillApear中,以下代碼在viewWillDisappear中進行恢復
        self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.black]
        self.navigationController?.navigationBar.tintColor = UIColor.black

透明只對當前有效,返回上一級後不影響,文字顏色及控件顏色對上一級有影響,所以需要恢復


3、鎖定屏幕方向

a.在AppDelegate中實現

    func application(_ application: UIApplication, supportedInterfaceOrientationsFor Window: UIWindow?) -> UIInterfaceOrientationMask {
        if !self.blockRotation {
            return UIInterfaceOrientationMask.all
        } else {
            return UIInterfaceOrientationMask.portrait
        }
    }

    var blockRotation: Bool = false

b.擴展UIViewController

extension UIViewController {
    var app : AppDelegate {
        return UIApplication.shared.delegate as! AppDelegate
    }
}

c.在需要鎖定屏幕的地方,一般是viewWillApear中

        app.blockRotation = true
        old = UIDevice.current.value(forKey: "orientation")
        UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")

d.退出時恢復狀態

app.blockRotation = false

我這裡是鎖定為豎屏,其他值可根據你自己的情況選擇


以上整理內容在xcode 8.2.1(8C1002)中,用swift3實現,希望對各位有幫助,不用東奔西跑了。

以上就是奔五的人學IOS:swift對 狀態欄、導航條若干技巧的全文介紹,希望對您學習和使用IOS應用開發有所幫助.

【奔五的人學iOS:swift對 狀態欄、導航條若干技巧】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved