LaunchScreen与LaunchImage

如果你想要在Assets.xcassets中使用LaunchImage来设置启动图的话,你要做2件事:
1.根据不同屏幕尺寸的需求设置不同的图片,图片的需求尺寸可以参照下图:


LaunchScreen与LaunchImage_第1张图片

2.取消系统默认使用的LaunchScreen,首先你要取消Use as Launch Screen 的选中


LaunchScreen与LaunchImage_第2张图片

然后你需要把Launch Screen File 设置成

LaunchScreen与LaunchImage_第3张图片

在配置好以上之后启动页的图片就会使用LaunchImage中的图片了

当然,有时候我们需要获得LaunchImage,该怎么办呢?

CGSize viewSize = self.window.bounds.size;
NSString *viewOrietation = @"Portrait";//横屏设成@"Landscape"
NSString *launchImage = nil;
NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
for (NSDictionary* dict in imagesDict){    
     CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);       
    if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrietation isEqualToString:dict[@"UILaunchImageOrientation"]])    { 
       launchImage = dict[@"UILaunchImageName"];    
    }}

这里的launchImage就是你要获取的启动图片的名字,需要注意的是,如果你不是用LaunchImage来做启动图片的话,在 [NSBundle mainBundle] infoDictionary] 中是无法找到@"UILaunchImages" 这个key的。

如果你想要动态修改启动页面图LaunchImage,抱歉!根据苹果的用户交互指引,该页面是在程序加载时显示的,不建议动态修改.
正确的做法一般都是用固定的图片做启动页面图,在启动页面结束之后做任何你想做的事.

如果真想动态修改启动页面,启动页面是固定的名字,可以在程序执行之后强制把页面替换掉,不过这样APP可能会被拒.

该怎么设置一个动态的启动图呢?在启动图结束的时候,用一个View来展示你的动图,记得placeHolder设置为和你的LaunchImage的图片一样就行,这样就可以做出类似的效果了

你可能感兴趣的:(LaunchScreen与LaunchImage)