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

See what programmers are reading in September

In September, everyone focused on the official re...

This ocean "eater" is even crazier than sharks changing their teeth?

In the world of marine life, sharks are often kno...

Practical examples of marketing growth in educational institutions

Recently, when I was chatting with a young lady w...

NIO announced that it will release its 2019 Q3 financial report on December 30

As 2019 is coming to an end, I believe many peopl...

Promotional event: the process of bargaining for popular products!

As early as 2016, price-cutting reached a small c...

Case analysis: How to increase user growth?

During the survey, we found that “growth means” i...

Tutorial on Creating a Mobile Interaction Design Checklist

For mobile applications, mobile scenarios are ver...