iOS开发-动态获取LaunchImage里的启动图和APPicon

应用场景:

我们在应用启动后,往往会在启动图加载完成之后,去获取广告图进行展示。但加载广告图往往需要耗费未知的时间,这个时候我们就需要获取启动图,来进行一个安全展示,并且需要动态展示,因为LaunchImage里面的图片是根据设备尺寸来动态展示的。

方法一:

方法:工程里存储不同尺寸启动图,然后判断机器设备,区别选取启动图
缺点:每次都要导入不同尺寸启动图,更换起来比较麻烦

方法二(推荐):

根据Assets.xcassets里的plist文件来动态获取,具体方法如下:

//启动图
+ (UIImage *)getLaunchImage{
    
    CGSize viewSize = [UIScreen mainScreen].bounds.size;
    NSString *viewOr = @"Portrait";//垂直
    NSString *launchImage = nil;
    NSArray *launchImages =  [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
    
    for (NSDictionary *dict in launchImages) {
        CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
        
        if (CGSizeEqualToSize(viewSize, imageSize) && [viewOr isEqualToString:dict[@"UILaunchImageOrientation"]]) {
            launchImage = dict[@"UILaunchImageName"];
        }
        
        
    }
    return [UIImage imageNamed:launchImage];
    
}

//APPicon
+ (UIImage *)appIcon{
    NSDictionary *infoPlist = [[NSBundle mainBundle] infoDictionary];
    NSString *icon = [[infoPlist valueForKeyPath:@"CFBundleIcons.CFBundlePrimaryIcon.CFBundleIconFiles"] lastObject];
    UIImage* image = [UIImage imageNamed:icon];
    return image;
}




你可能感兴趣的:(iOS开发-动态获取LaunchImage里的启动图和APPicon)