好的,所以使用xcode,你可以为iPhone 5和iPhone 4设置不同的屏幕尺寸,当我尝试将它们放在Storyboard文件上时,它们总是被搞砸了,就像我把所有东西都放在iPhone 5然后然后它会在iPhone 4上被切断。有没有办法让故事板有两个不同版本,所以我可以为每个屏幕尺寸定位不同的对象?
答案 0 :(得分:0)
您可以根据屏幕尺寸选择故事板,在代码中手动执行此操作。但是,我认为没有办法自动执行此操作,因为应用的info.plist只有Main storyboard file base name
,Main 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}}属性,以确保在不检查屏幕高度的情况下访问正确的故事板。