如何在xcode中设置两个不同的屏幕选项

时间:2013-12-01 23:37:09

标签: ios xcode storyboard screen-size

好的,所以使用xcode,你可以为iPhone 5和iPhone 4设置不同的屏幕尺寸,当我尝试将它们放在Storyboard文件上时,它们总是被搞砸了,就像我把所有东西都放在iPhone 5然后然后它会在iPhone 4上被切断。有没有办法让故事板有两个不同版本,所以我可以为每个屏幕尺寸定位不同的对象?

1 个答案:

答案 0 :(得分:0)

您可以根据屏幕尺寸选择故事板,在代码中手动执行此操作。但是,我认为没有办法自动执行此操作,因为应用的info.plist只有Main storyboard file base nameMain storyboard file base name (iPad)Main storyboard file base name (iPhone)

要手动执行此操作,您需要在应用代理中加载第一个视图控制器,如下所示:

//AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
    if ([UIScreen mainScreen].bounds.size.height == 568.0) {
        //device is an iPhone 5 or 5S
        storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard568Height" bundle:[NSBundle mainBundle]];
    }
    self.window.rootViewController = [storyboard instantiateInitialViewController];
    [self.window makeKeyAndVisible];
}

一旦你以这种方式加载了你的第一个视图控制器,你应该能够只使用该故事板中的segue来再次避免这种逻辑。如果您需要手动加载视图控制器,则只需访问当前self.storyboard的{​​{1}}属性,以确保在不检查屏幕高度的情况下访问正确的故事板。