Prechádzať zdrojové kódy

Movie View: prevent statusbar from disappearing when leaving playback and make sure that the controls are always being displayed when starting playback

Felix Paul Kühne 12 rokov pred
rodič
commit
cb31f60601
1 zmenil súbory, kde vykonal 12 pridanie a 7 odobranie
  1. 12 7
      AspenProject/VLCMovieViewController.m

+ 12 - 7
AspenProject/VLCMovieViewController.m

@@ -15,6 +15,7 @@
 @interface VLCMovieViewController () <UIGestureRecognizerDelegate>
 {
     BOOL _shouldResumePlaying;
+    BOOL _viewAppeared;
 }
 
 @property (nonatomic, strong) UIPopoverController *masterPopoverController;
@@ -133,6 +134,9 @@
         [alert show];
     } else
         [self _playNewMedia];
+
+    [self setControlsHidden:NO animated:YES];
+    _viewAppeared = YES;
 }
 
 - (BOOL)_isMediaSuitableForDevice
@@ -193,6 +197,7 @@
 
 - (void)viewWillDisappear:(BOOL)animated
 {
+    _viewAppeared = NO;
     if (_idleTimer) {
         [_idleTimer invalidate];
         _idleTimer = nil;
@@ -271,7 +276,7 @@
 {
     _controlsHidden = hidden;
     CGFloat alpha = _controlsHidden? 0.0f: 1.0f;
-    
+
     if (!_controlsHidden) {
         _controllerPanel.alpha = 0.0f;
         _controllerPanel.hidden = !_videoFiltersHidden;
@@ -288,7 +293,7 @@
         _aspectRatioButton.alpha = 0.0f;
         _aspectRatioButton.hidden = NO;
     }
-    
+
     void (^animationBlock)() = ^() {
         _controllerPanel.alpha = alpha;
         _toolbar.alpha = alpha;
@@ -299,7 +304,7 @@
         _videoFilterButton.alpha = alpha;
         _aspectRatioButton.alpha = alpha;
     };
-    
+
     void (^completionBlock)(BOOL finished) = ^(BOOL finished) {
         if (_videoFiltersHidden) {
             _controllerPanel.hidden = _controlsHidden;
@@ -319,16 +324,16 @@
         else
             _playbackSpeedView.hidden = _playbackSpeedViewHidden;
     };
-    
+
     UIStatusBarAnimation animationType = animated? UIStatusBarAnimationFade: UIStatusBarAnimationNone;
     NSTimeInterval animationDuration = animated? 0.3: 0.0;
-    
-    [[UIApplication sharedApplication] setStatusBarHidden:_controlsHidden withAnimation:animationType];
+
+    [[UIApplication sharedApplication] setStatusBarHidden:_viewAppeared ? _controlsHidden : NO withAnimation:animationType];
     [UIView animateWithDuration:animationDuration animations:animationBlock completion:completionBlock];
 }
 
 - (void)toggleControlsVisible
-{    
+{
     [self setControlsHidden:!_controlsHidden animated:YES];
 }