FlutterViewController+CoolStatusBarHidden.m 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //
  2. // FlutterViewController+CoolViewController.m
  3. // flutter_ijkplayer
  4. //
  5. // Created by Caijinglong on 2019/11/8.
  6. //
  7. #import "FlutterViewController+CoolStatusBarHidden.h"
  8. #import <objc/runtime.h>
  9. @implementation FlutterViewController (CoolViewController)
  10. -(void)showStatusBar{
  11. objc_setAssociatedObject(self, @selector(showStatusBar), @"show", OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  12. [UIView animateWithDuration:1 animations:^{
  13. [self setNeedsStatusBarAppearanceUpdate];
  14. }];
  15. }
  16. -(void)hideStatusBar{
  17. objc_setAssociatedObject(self, @selector(showStatusBar), @"hide", OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  18. [UIView animateWithDuration:1 animations:^{
  19. [self setNeedsStatusBarAppearanceUpdate];
  20. }];
  21. }
  22. -(BOOL)isStatusBarShow{
  23. NSString *value = objc_getAssociatedObject(self, @selector(showStatusBar));
  24. return ![value isEqualToString:@"hide"];
  25. }
  26. - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation{
  27. return UIStatusBarAnimationFade;
  28. }
  29. -(BOOL)prefersStatusBarHidden{
  30. return ![self isStatusBarShow];
  31. }
  32. -(void)viewDidDisappear:(BOOL)animated{
  33. objc_removeAssociatedObjects(self);
  34. }
  35. @end