فهرست منبع

Fixed the extended launch screen causing minor visual issues when rotating the screen in some circumstances.

Alex Szpakowski 11 سال پیش
والد
کامیت
3e17fbee7e
2فایلهای تغییر یافته به همراه14 افزوده شده و 9 حذف شده
  1. 0 1
      src/video/uikit/SDL_uikitappdelegate.h
  2. 14 8
      src/video/uikit/SDL_uikitappdelegate.m

+ 0 - 1
src/video/uikit/SDL_uikitappdelegate.h

@@ -25,7 +25,6 @@
 
 - (instancetype)init;
 - (void)loadView;
-- (BOOL)shouldAutorotate;
 - (NSUInteger)supportedInterfaceOrientations;
 
 @end

+ 14 - 8
src/video/uikit/SDL_uikitappdelegate.m

@@ -115,7 +115,9 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
     return image;
 }
 
-@implementation SDLLaunchScreenController
+@implementation SDLLaunchScreenController {
+    UIInterfaceOrientationMask supportedOrientations;
+}
 
 - (instancetype)init
 {
@@ -126,6 +128,9 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
     NSBundle *bundle = [NSBundle mainBundle];
     NSString *screenname = [bundle objectForInfoDictionaryKey:@"UILaunchStoryboardName"];
 
+    /* Normally we don't want to rotate from the initial orientation. */
+    supportedOrientations = (1 << [UIApplication sharedApplication].statusBarOrientation);
+
     /* Launch screens were added in iOS 8. Otherwise we use launch images. */
     if (screenname && UIKit_IsSystemVersionAtLeast(8.0)) {
         @try {
@@ -211,6 +216,12 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
         }
 
         if (image) {
+            if (image.size.width > image.size.height) {
+                supportedOrientations = UIInterfaceOrientationMaskLandscape;
+            } else {
+                supportedOrientations = UIInterfaceOrientationMaskPortrait;
+            }
+
             self.view = [[UIImageView alloc] initWithImage:image];
         }
     }
@@ -223,14 +234,9 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
     /* Do nothing. */
 }
 
-- (BOOL)shouldAutorotate
-{
-    return YES;
-}
-
 - (NSUInteger)supportedInterfaceOrientations
 {
-    return UIInterfaceOrientationMaskAll;
+    return supportedOrientations;
 }
 
 @end
@@ -333,7 +339,7 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
 
     SDL_SetMainReady();
     [self performSelector:@selector(postFinishLaunch) withObject:nil afterDelay:0.0];
-    
+
     return YES;
 }