6

iPhoneのUIStatusBarの非表示と表示を検出しようとしていますが、失敗しました。KVOや他の何かのように、私を助けることができる解決策はありますか?

4

4 に答える 4

4

statusBarHidden共有UIApplicationインスタンスのプロパティを確認できます。

簡単な例:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    // Do something here...
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[UIApplication sharedApplication] addObserver:self forKeyPath:@"statusBarHidden" options:NSKeyValueObservingOptionNew context:NULL];
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; // Will notify the observer about the change
}
于 2012-10-11T04:23:52.740 に答える
1

iOS 11 以降では、View Controller の UIView をサブクラス化し、オーバーライドできますsafeAreaInsetsDidChange

override func safeAreaInsetsDidChange() {
  super.safeAreaInsetsDidChange()
  // adapt your view
}

これを機能させるには、ビューがステータス バーと上部の四角形を共有する必要があります。(しかし、そうでない場合は、とにかく変更を検出する必要はないでしょう)。

于 2018-11-14T17:26:48.900 に答える
0

UIApplicationクラスには、プロパティstatusBarHiddenがあります...これはステータスバーが非表示になっているかどうかを示します...それがYESを返す場合は、ステータスバーが非表示になっていることを意味します...これを試してください。

于 2012-10-11T04:23:42.337 に答える