どうもこんにちはあっきぃです。
友達が欲しくてここ最近で観葉植物をたくさん買いました。
この季節だからかあっきぃと違って日々ぐんぐん成長しています。ちくしょう。
という感じで、
iPhoneアプリとかのステータスバーをフェードイン、フェードアウトさせる方法
です。
まずはこんなプロパティをViewControllerに持ちましょう。
@property (nonatomic, assign) BOOL statusBarHidden;
そしたらUIViewControllerに元から入っている、prefersStatusBarHiddenでそのプロパティを返しましょう。
これでstatusBarHiddenの値を変えればステータスバーの表示非表示がコントロールできます。
- (BOOL)prefersStatusBarHidden {
return self.statusBarHidden;
}
return self.statusBarHidden;
}
さらにstatusBarHiddenの値を変えた時にフェードイン、フェードアウトさせます。
- (void)setStatusBarHidden:(BOOL)statusBarHidden {
_statusBarHidden = statusBarHidden;
[UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[self setNeedsStatusBarAppearanceUpdate];
} completion:nil];
}
_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];
}
_statusBarHidden = statusBarHidden;
if (statusBarHidden) {
[self setNeedsStatusBarAppearanceUpdate];
retutn;
}
[UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[self setNeedsStatusBarAppearanceUpdate];
} completion:nil];
}
参考にしてください。
ではでは♪