应用场景:
我们在应用启动后,往往会在启动图加载完成之后,去获取广告图进行展示。但加载广告图往往需要耗费未知的时间,这个时候我们就需要获取启动图,来进行一个安全展示,并且需要动态展示,因为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;
}