1

我想让我的 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 英寸时,我的代码没有得到模拟器大小。它总是执行 480if条件。

但我这样创建的其他应用程序运行正常。
这是什么原因?

4

1 回答 1

4

我现在遇到了完全相同的问题(当然是在最糟糕的时刻......)。它确实正常工作了几个星期,但出于未知原因,模拟器突然将 4 英寸模拟设备视为 3.5 英寸屏幕。清洁,重置,重启:同样的情况......

编辑:好的,问题解决了。这是因为缺少 -568@2x 格式的默认图像。我知道这是使系统正常工作的一个条件,但 xcode 显然决定摆脱我选择的那个。那好吧...

于 2013-04-24T18:10:49.153 回答