最新做一个项目,需要iOS默认启动图过后,再次使用启动图垫底,然后配合广告图进行一个动画。故最直接的办法就是使用Images.xcassets中的图片。然而,直接使用Images.xcassets中的图片名,再用[UIImage ImageWithName:]取不到图片???
这是因为Images.xcassets会对启动图,进行二次命名。所以,需要获取Images.xassets的重命名后的名字(具体函数参考下面代码),再用[UIImage ImageWithName:]就ok
举例:我的工程中的启动图是这样的:
直接使用"Default-667h"等获取不到图片,需要这个函数(放到appdelegae中)
- (NSString *)fetchLunchImageName
{
CGSize winSize = self.window.size;
NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
for (NSDictionary* dict in imagesDict) {
if(CGSizeEqualToSize(CGSizeFromString(dict[@"UILaunchImageSize"]),winSize))
{
return dict[@"UILaunchImageName"];
}
}
return nil;
}
结果:获取images.xcassets中对应的图片名
iPhone6/s @“LaunchImage-800-667h”
iPhone6+/s @“LaunchImage-800-Portrait-736h”
iPhone5 @“LaunchImage-700-568h”
iPhone4s @“LaunchImage-700”
然后再使用[UIImage ImageWithName:]就可以啦