我希望通过从初始屏幕 (UILaunchImageFile) 淡入主屏幕来开始我的应用程序。简单的事情,我想,只需将带有初始屏幕的 UIImageView 显示为第一个视图,然后制作过渡动画。
问题是,由于这是一个支持所有四个方向的 iPad 应用程序,以及所有这些方向的闪屏,我需要查询使用了哪个闪屏。我可以查询当前设备旋转并相应地选择图像,但我想知道是否有更好的方法。
那么,我可以以某种方式查询在应用程序启动期间使用了哪个启动图像,还是我需要询问设备的当前 UI 方向并相应地选择文件?
我希望通过从初始屏幕 (UILaunchImageFile) 淡入主屏幕来开始我的应用程序。简单的事情,我想,只需将带有初始屏幕的 UIImageView 显示为第一个视图,然后制作过渡动画。
问题是,由于这是一个支持所有四个方向的 iPad 应用程序,以及所有这些方向的闪屏,我需要查询使用了哪个闪屏。我可以查询当前设备旋转并相应地选择图像,但我想知道是否有更好的方法。
那么,我可以以某种方式查询在应用程序启动期间使用了哪个启动图像,还是我需要询问设备的当前 UI 方向并相应地选择文件?
不,您不能自动执行此操作。查询设备旋转并根据它选择图像非常好。
不过,在这种情况下,您实际上只需要纵向或横向,假设您正确旋转视图。
正如约书亚所说,据我所知,你不能。
万一这可能对其他人有帮助,如果您使用资产类别,则以下代码应为当前界面方向提供正确的启动图像。
NSString *suffix = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
suffix = [[UIScreen mainScreen] bounds].size.height >= 568.0f ? @"-568h@2x" : @"@2x";
}
else {
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
suffix = UIInterfaceOrientationIsPortrait(orientation) ? @"-Portrait" : @"-Landscape";
suffix = [UIScreen mainScreen].scale == 2.0 ? [suffix stringByAppendingString:@"@2x~ipad"] : [suffix stringByAppendingString:@"~ipad"];
}
NSString *launchImageName = [NSString stringWithFormat:@"LaunchImage-700%@.png",suffix];