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

12 浏览
0 Comments

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

好的,使用Xcode可以为iPhone 5和iPhone 4设置不同的屏幕尺寸。但是,当我尝试在Storyboard文件上放置元素时,它们总是出现问题,比如我为iPhone 5按照一种方式放置了所有元素,然后在iPhone 4上被截断了。有没有可能创建两个不同版本的Storyboard,这样我可以为每个屏幕尺寸单独定位对象?

0
0 Comments

在xcode中设置两个不同的屏幕选项的原因是app的info.plist文件只有三个选项,无法自动选择不同的故事板。因此需要手动在代码中选择故事板。具体的解决方法是在AppDelegate中加载第一个视图控制器,根据屏幕大小选择故事板。通过加载第一个视图控制器后,可以使用故事板中的segue来避免再次使用这个逻辑。如果需要手动加载视图控制器,可以通过访问当前UIViewController的self.storyboard属性来确保访问正确的故事板,而无需检查屏幕高度。

以下是具体的代码示例:

//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];
}

如果以上代码不起作用,可以检查if语句是否被执行,并检查屏幕的边界值。可以通过设置断点并使用lldb命令来检查当前属性。可以在Xcode中找到关于调试的更多信息。

0