我想让我的iOS应用程序支持iPhone 5.所以我为iPhone 5大小创建了一个单独的xib集。然后我通过检查屏幕高度加载每个xib。
这是AppDelegate.m中的启动画面加载代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
UIViewController *viewController1;
if ([UIScreen mainScreen].bounds.size.height==480) {
viewController1 = [[SplashScreen alloc] initWithNibName:@"SplashScreen" bundle:nil];
}
if ([UIScreen mainScreen].bounds.size.height==568) {
viewController1 = [[SplashScreen alloc] initWithNibName:@"SplashScreen5" bundle:nil];
}
self.window.rootViewController = viewController1;
[self.window makeKeyAndVisible];
return YES;
}
但是当我将模拟器更改为Retina 4英寸时,我的代码无法获得模拟器大小。它始终执行480 if
条件。
但是我创建的其他应用程序正常运行 这是什么原因?
答案 0 :(得分:4)
我现在遇到完全相同的问题(当然是在最糟糕的时刻......)。 它确实工作了几个星期,并且由于一个未知的原因,模拟器突然将4英寸模拟设备视为3.5英寸屏幕。 清洁,重置,重启:同样的情况......
编辑:好的,问题解决了。 T'是因为-568 @ 2x格式中缺少默认图像。我知道这是使系统工作的一个条件,但xcode显然决定摆脱我选择的那个。哦,好吧......