Get the LaunchImage of the app

Get the LaunchImage of the app

[[153741]]

The management of LaunchImage is actually quite simple in iOS, especially after Xcode introduced xcassets, it is a completely fool-proof operation. But sometimes we still need to do something with LaunchImage.

LaunchImage will disappear immediately after the APP is initialized and the APP interface will be displayed. But sometimes we don’t want it to disappear so quickly (for example, some people want a transition effect, while others want it to disappear after certain settings or data are loaded). This is also very simple. We just need to display LaunchImage again and pin it to the top.

For example,

However, we have configured so many LaunchImages for different screen resolutions. How do we get the LaunchImage that is suitable for the current screen resolution?

The common way is to add all LaunchImage to the project and name them according to the screen resolution, such as (640_960.png 640_1136.png ...) and then use code to splice the corresponding file name in the program and reference it.

However, this method is relatively primitive and if Apple releases some devices with other resolutions in the future or the startup image changes, it will need to be manually modified. The project configuration is not good and it will take up more resources (the capacity of the APP will increase again).

Cherpak Evgeny on stackflow shared a better way to directly read the settings in NSBundle to get the currently applicable LaunchImage

I wrote a demonstration code based on the above picture as an example

  1. CGSize viewSize = self.window.bounds.size;
  2. NSString *viewOrientation = @ "Portrait" ; //For horizontal screen, please set it to @"Landscape"  
  3. NSString *launchImage = nil;
  4. NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@ "UILaunchImages" ];
  5. for (NSDictionary* dict in imagesDict)
  6. {
  7. CGSize imageSize = CGSizeFromString(dict[@ "UILaunchImageSize" ]);
  8.       
  9. if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@ "UILaunchImageOrientation" ]])
  10. {
  11. launchImage = dict[@ "UILaunchImageName" ];
  12. }
  13. }
  14. UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImage]];
  15. launchView.frame = self.window.bounds;
  16. launchView.contentMode = UIViewContentModeScaleAspectFill;
  17. [self.window addSubview:launchView];
  18. [UIView animateWithDuration: 2 .0f
  19. delay : 0.0f
  20. options:UIViewAnimationOptionBeginFromCurrentState
  21. animations:^{
  22.                        
  23. launchView.alpha = 0 .0f;
  24. launchView.layer.transform = CATransform3DScale(CATransform3DIdentity, 1.2 , 1.2 , 1 );
  25.                        
  26. }
  27. completion:^(BOOL finished) {
  28.                        
  29. [launchView removeFromSuperview];
  30.                        
  31. }];

This way you can easily get LaunchImage~

<<:  Who helped Apple come back to life 20 years ago? It was Microsoft!

>>:  iOS 9.2 beta arrives with new features that may focus on stylus

Recommend

The most powerful copywriting for 520 Confession Day in history is here! !

520 is other people’s Valentine’s Day , but it is...

30 information flow cases to teach you how to improve conversion

January's creative sharing is finally here! A...

How much does it cost to develop a Huludao specialty mini program?

The overall investment promotion of Huludao speci...

Baidu buys Kuaiqian for RMB 2 billion: a good deal for a man and a woman

After Double Eleven, Baidu also started the “buy,...

10,000 words to dismantle the L’Oreal brand!

As the wave of new brands cools down, the spotlig...

Apple releases OS X 10.10.5 beta 3 to developers

Apple today released the third beta of OS X 10.10...