Objective-C StatusBarをフェードアウトさせる

公開: 2016-09-14 07:53

どうもこんにちはあっきぃです。

友達が欲しくてここ最近で観葉植物をたくさん買いました。

この季節だからかあっきぃと違って日々ぐんぐん成長しています。ちくしょう。


という感じで、


iPhoneアプリとかのステータスバーをフェードイン、フェードアウトさせる方法

です。


まずはこんなプロパティをViewControllerに持ちましょう。

@property (nonatomic, assign) BOOL statusBarHidden;

そしたらUIViewControllerに元から入っている、prefersStatusBarHiddenでそのプロパティを返しましょう。

これでstatusBarHiddenの値を変えればステータスバーの表示非表示がコントロールできます。

- (BOOL)prefersStatusBarHidden {
        return self.statusBarHidden;
}

さらにstatusBarHiddenの値を変えた時にフェードイン、フェードアウトさせます。

- (void)setStatusBarHidden:(BOOL)statusBarHidden {
        _statusBarHidden = statusBarHidden;
        [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
                [self setNeedsStatusBarAppearanceUpdate];
        } completion:nil];
}

これでおっけーです。

例えばステータスバーをフェードアウトしたいときはこう。

self.statusBarHidden = YES;

フェードインしたいときはこう。

self.statusBarHidden = NO;

簡単ですね。



応用で
表示のときはフェードイン、
非表示にするときはパッと消したいという場合はこうなります。

- (void)setStatusBarHidden:(BOOL)statusBarHidden {
        _statusBarHidden = statusBarHidden;
        if (statusBarHidden) {
                [self setNeedsStatusBarAppearanceUpdate];
                retutn;
        }
        [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
                [self setNeedsStatusBarAppearanceUpdate];
        } completion:nil];
}

参考にしてください。

ではでは♪



この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。