12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
-
- #import "RNNSplashScreen.h"
- #import <UIKit/UIKit.h>
-
- @implementation RNNSplashScreen
-
- +(void)show
- {
- CGRect screenBounds = [UIScreen mainScreen].bounds;
- UIView *splashView = nil;
-
- NSString* launchStoryBoard = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UILaunchStoryboardName"];
- if (launchStoryBoard != nil)
- {//load the splash from the storyboard that's defined in the info.plist as the LaunchScreen
- @try
- {
- splashView = [[NSBundle mainBundle] loadNibNamed:launchStoryBoard owner:self options:nil][0];
- if (splashView != nil)
- {
- splashView.frame = CGRectMake(0, 0, screenBounds.size.width, screenBounds.size.height);
- }
- }
- @catch(NSException *e)
- {
- splashView = nil;
- }
- }
- else
- {//load the splash from the DEfault image or from LaunchImage in the xcassets
- CGFloat screenHeight = screenBounds.size.height;
-
- NSString* imageName = @"Default";
- if (screenHeight == 568)
- imageName = [imageName stringByAppendingString:@"-568h"];
- else if (screenHeight == 667)
- imageName = [imageName stringByAppendingString:@"-667h"];
- else if (screenHeight == 736)
- imageName = [imageName stringByAppendingString:@"-736h"];
-
- //xcassets LaunchImage files
- UIImage *image = [UIImage imageNamed:imageName];
- if (image == nil)
- {
- imageName = @"LaunchImage";
-
- if (screenHeight == 480)
- imageName = [imageName stringByAppendingString:@"-700"];
- if (screenHeight == 568)
- imageName = [imageName stringByAppendingString:@"-700-568h"];
- else if (screenHeight == 667)
- imageName = [imageName stringByAppendingString:@"-800-667h"];
- else if (screenHeight == 736)
- imageName = [imageName stringByAppendingString:@"-800-Portrait-736h"];
-
- image = [UIImage imageNamed:imageName];
- }
-
- if (image != nil)
- {
- splashView = [[UIImageView alloc] initWithImage:image];
- }
- }
-
- if (splashView != nil)
- {
- UIViewController *splashVC = [[UIViewController alloc] init];
- splashVC.view = splashView;
-
- id<UIApplicationDelegate> appDelegate = [UIApplication sharedApplication].delegate;
- appDelegate.window.rootViewController = splashVC;
- [appDelegate.window makeKeyAndVisible];
- }
- }
-
- @end
|