我正在通过UIImage imageNamed:@" LaunchImage“访问LaunchImage,但无论如何,它总是给我640x960。显然,它似乎没有检测到我使用的是哪一部手机,它只是抛出了640x960。
我可以检查屏幕大小,并为每个设备设置特定的图像名称,但这并不理想。必须有一种简单的方法来完成这项工作。有人知道吗?
发布于 2016-05-27 12:48:21
关键是Info.plist文件包含有关要使用的启动图像的信息。下面的方法将从Info.plist中找到该名称,然后您只需从[UIImage imageNamed:@""]方法中查询它。
- (NSString *)splashImageNameForOrientation:(UIInterfaceOrientation)orientation {
CGSize viewSize = self.view.bounds.size;
NSString* viewOrientation = @"Portrait";
if (UIDeviceOrientationIsLandscape(orientation)) {
viewSize = CGSizeMake(viewSize.height, viewSize.width);
viewOrientation = @"Landscape";
}
NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
for (NSDictionary* dict in imagesDict) {
CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
return dict[@"UILaunchImageName"];
}
if (imagesDict.count > 0) {
return [imagesDict firstObject][@"UILaunchImageName"];
}
return nil;
}发布于 2016-05-27 13:48:35
请参考此url:
Launch screens supporting iOS6 and iOS7 - forced to splash screen
或
您正在Assets.xcassets中添加启动屏幕:您将看到如下图像大小:

https://stackoverflow.com/questions/37474758
复制相似问题