尝试使我的应用程序可同时用于iPhone 5和iPhone 4 / 4s。我尝试了“AutoLayout”,但似乎不适用于我的应用程序,还读取到它在iOS 5中不受支持。AutoLayout专门在具有UIScrollview和已在代码中重新设置大小的UIPicker的 View Controller 上特别失败。有两个 Storyboard ,一个为4英寸,一个为3.5英寸,似乎是可行的方法。

这两个Storyboard前驱似乎是我的解决方案。所以这给我两个问题。

  • 代码应该在哪里检测到它是否是4 / 4s / 5?我假设在appDelegate.m中的didFinishLaunchingWithOptions方法
  • 如何更改“主 Storyboard”?
  • 最佳答案

    这是一个很好的问题。

    您需要做的是,

  • 选择当前的4 / 4s Storyboard,转到"file",复制,然后为其指定iPhone 5的特定名称。
    确保已选中Target和您的应用名称。
  • 接下来,您必须在 Storyboard 中选择场景,然后在“属性”检查器中将大小更改为“Retina 4全屏”。
    这使您可以重新排列此显示的所有内容。
  • 最后,在应用程序didFinishLaunchingWithOptions中将以下代码与您为4英寸 Storyboard 提供的 Storyboard 名称一起粘贴。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
        UIStoryboard *storyBoard;
    
        CGSize result = [[UIScreen mainScreen] bounds].size;
        CGFloat scale = [UIScreen mainScreen].scale;
        result = CGSizeMake(result.width * scale, result.height * scale);
    
        if(result.height == 1136){
            storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone_5" bundle:nil];
            UIViewController *initViewController = [storyBoard instantiateInitialViewController];
            [self.window setRootViewController:initViewController];
        }
    }
    
    return YES;
    }
    


  • 如果任何人都不知道如何执行步骤1,请执行以下操作。
  • 转到Project目录,然后复制粘贴MainStoryboard.storyboard并重命名新的 Storyboard以说MainStoryboard5.storyboard
  • 右键单击“项目”,然后单击MainStoryboard5.storyboard
  • ,将新的 StoryboardAdd Files to ....添加到项目中(在Xcode中)
  • 现在,我们在xcode中有两个分镜脚本。

  • 提示

    完成上述所有操作后,您可能必须使用“产品>清洁”才能起作用。

    10-05 21:00
    查看更多