2016-10-15 25 views
1

私はサイドメニュービューコントローラ(ENSwiftSideMenu)でアニメーションを動かしています。サイドメニューの背景色はかなり濃い青ですので、デフォルトで黒であるステータスバーを表示し、メニューが表示されている間に点灯させたいと思います。 info.plist内(もNOを試してみました)YESに設定されているView controller-based status bar appearance
は、私は、残念ながら、動作しませんでした次のコードを実装してみました:ステータスバーの色をリアルタイムで変更してください

UIApplication.shared.statusBarStyle = .lightContent 

はまた、私はこれを試してみました:

override func viewDidLoad() { 
    super.viewDidLoad() 
    setNeedsStatusBarAppearanceUpdate() 
} 

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .default 
} 

どのように動作させるか考えていますか?
ありがとうございます!あなたのAppDelegateで

+0

あなたがENSwiftSideMenuステータスバーを濃い青色にし、mainVCステータスバーを通常色またはdiff色にしたい場合は... – Joe

+0

いいえいいえサイドメニューが表示されているときにステータスバーを白にします。 – LinusGeffarth

+0

コードをもう一度更新しました。今回は正しく理解しました.... – Joe

答えて

2

このコードを試してみてください

 var navigationBarAppearace = UINavigationBar.appearance() 
    navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] // If you want to change title colour 
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default 

//あなたのViewControllerでコード

 View controller-based status bar appearance = NO 

の下であなたのplistを更新します。

override func viewDidLoad() { 
    super.viewDidLoad() 

    // UIApplication.sharedApplication().statusBarStyle = .LightContent 
    navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default) 
    navigationController?.navigationBar.shadowImage = UIImage() 
    navigationController?.navigationBar.tintColor = UIColor.whiteColor() 
    navigationController?.navigationBar.translucent = true 
} 

func sideMenuWillOpen() { 
    print("sideMenuWillOpen") 
UIApplication.sharedApplication().statusBarStyle = .LightContent 
} 

func sideMenuWillClose() { 
    print("sideMenuWillClose") 
UIApplication.sharedApplication().statusBarStyle = .Default 
} 

直接ステータスバーのスタイルを更新

+0

努力してくれてありがとうございますが、ステータスバーの背景を持っているのではなく、ステータスバーの内容を実際に照らしてみたいと思っています。 – LinusGeffarth

+0

@ LinusG。こんにちは、私は答えを得た。私はすぐに答えを更新します... – Joe

+0

@ LinusG。コードが更新されました。 – Joe

0

... code.Youは

がknow.Ifコードがあなたのために働く私にしてみましょう。..効果を同期するUIAnimationのいくつかの並べ替えを使用することができ、上から

出力deprecatedであり、ビューコントローラベースのステータスバーの外観が有効な場合は機能しません。

代わりに、各コントローラには推奨ステータスバースタイルを提供する必要があり、各コントローラを表示するフレームワークにはchildViewControllerForStatusBarStyleを実装し、ステータスバーの外観に適切な子コントローラを提供する必要があります。残念ながら、ENSwiftSideMenuはそれをサポートしていないため、ビューコントローラベースのステータスバーの外観でこれを実装するのは難しいでしょう。元の開発者に問題を開くべきですが、より良い記述フレームワークに切り替えることもお勧めします。

関連する問題