web-dev-qa-db-ja.com

Xcode非表示の白いステータスバーios10

アプリに白いステータスバーが必要です。このために、_View controller-based status bar appearance_をNOに設定し、_Status bar style_をUIStatusBarStyleLightContentに設定します。しかし今、私はいくつかのビューコントローラーでステータスバーを隠す必要があります。非表示にするには、_View controller-based status bar appearance_をYESに設定し、- (BOOL)prefersStatusBarHidden {return YES;}を追加する必要があります。しかし、ステータスバーは現在黒です。 _View controller-based status bar appearance_がYESの場合は黒、NOの場合は白です。だから問題は、白いステータスバーを設定して非表示にする方法です。

UPD:VC白いステータスバーが欲しいというコード(prefferdSTatusBarStyleは呼び出されない)

enter image description here

VCステータスバーが非表示のコード

enter image description here

.plist設定

enter image description here

結果は黒いステータスバーで、一部のVCに隠れています

UPD2:

非推奨のメソッドを使用するのは悪いことですが、_[[UIApplication sharedApplication] setStatusBarHidden:YES];_を使用すると、すべてが希望どおりに機能します。誰かがより良い解決策を持っているなら、私に知らせてください。

7
Ossir

xcodeステータスバーを使用して設定できますスタイルは「ライト」です

enter image description here

0
Birendra

これはSwiftバージョン:

ステータスバーを非表示にしたり、外観を変更したりするには、ViewController自体の次のプロパティを上書きする必要があります

override var prefersStatusBarHidden: Bool{
        return true
}

上はステータスバーを非表示にし、白に設定する場合は下を非表示にします。

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
}
5
Shawn Frank

PlistファイルにView controller-based status bar appearance Boolプロパティを追加し、YESに設定します。

次に、ViewControllerに次のようなメソッドを追加します。

// TO MAKE STATUS BAR WHITE
override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
}

// TO MAKE STATUS BAR BLACK
override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
}

// RETURN TRUE TO HIDE AND FALSE TO SHOW STATUS BAR
override func prefersStatusBarHidden() -> Bool {
        return true
}

Objective-Cの場合

- (BOOL)prefersStatusBarHidden {
    return NO;
}

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

冗長なコードを削除するには、BaseViewControllerUIViewControllerのサブクラスとして作成し、そのクラスにメソッドを追加します。そして、変更が必要なクラスのメソッドをオーバーライドします。

2
Parth Adroja

ビューコントローラがUInavigationControllerに埋め込まれている場合は、このコードを

-(BOOL)prefreStatusBarHidden
{
       return [self.navigationController prefersStatusBarHidden];
}
0
Nishant Tiwari