首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xcode 4.5如何在发布时挑选故事板

xcode 4.5如何在发布时挑选故事板
EN

Stack Overflow用户
提问于 2012-09-21 19:05:05
回答 5查看 25.8K关注 0票数 42

试图让我的应用程序同时使用iPhone 5和iPhone 4/4。我尝试了" AutoLayout“,但似乎对我的应用程序不起作用,还读到iOS 5中不支持它。AutoLayout在具有UIScrollview和在代码中调整大小的UIPicker的视图控制器上特别失败。有两个故事板,一个为4英寸,另一个为3.5英寸似乎是可行的。

两个故事板似乎是我的解决方案。这给我留下了两个问题;

  1. 如果它是4/4s/5,那么要检测的代码应该在哪里呢?在didFinishLaunchingWithOptions方法中的appDelegate.m中,我假设
  2. 我该如何改变“主故事板”?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-21 19:43:35

,这是一个很好的问题。

你需要做的是

  1. 选择当前的4/4s故事板,转到“文件”,复制,然后给它一个iPhone 5特定的名称。确保选中了目标和应用程序名.
  2. 接下来,您必须在情节提要和属性检查器中选择场景,将大小更改为Retina 4全屏。这使您可以重新安排此显示的所有内容。
  3. 最后,在应用程序中,didFinishLaunchingWithOptions将下面的代码粘贴到您为4英寸故事板指定的情节提要名称中。

  • (BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ UIStoryboard *故事板;CGSize结果= [UIScreen mainScreen界].size;CGFloat scale = UIScreen mainScreen.scale;result = CGSizeMake(result.width * scale,mainScreen.scale* scale);if(result.width 1136){ =故事板UIScreen:@“”包:nil;*initViewController =;self.window setRootViewController:initViewController;}返回YES;}

如果没有人知道如何执行第1步,请按以下步骤执行.

  1. 转到Project,复制粘贴MainStoryboard.storyboard并重命名新的故事板,如MainStoryboard5.storyboard
  2. 在项目中添加这个新的故事板MainStoryboard5.storyboard (在Xcode中),方法是右键单击project并单击Add Files to ....
  3. 现在,我们在xcode中有了两个故事板。

Tip

您可能需要使用“产品>清洁”才能在您完成上述所有操作后才能工作。

票数 60
EN

Stack Overflow用户

发布于 2012-09-21 19:35:00

目前,唯一的方法是检查是否使用iPhone 5是[UIScreen mainScreen] bounds][[UIScreen mainScreen] scale]

代码语言:javascript
复制
BOOL isIphone5 = (([[UIDevice currentDevice] userInterfaceIdiom] 
== UIUserInterfaceIdiomPhone) && (([UIScreen mainScreen].bounds.size.height * 
[[UIScreen mainScreen] scale]) >= 1136));

这只有在您至少向应用程序添加了Default-568h@2x.png启动映像时才能工作。否则这将永远是假的。(因为如果没有启动映像,屏幕将被封上字母)

要将故事板设置为iPhone 5版本,您可能需要查看this question

票数 7
EN

Stack Overflow用户

发布于 2012-10-10 17:23:28

我从fields.cage答案中获得灵感,并将其改编为我的代码,它运行得很好。谢谢!!

代码语言:javascript
复制
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){


             self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone5" bundle:nil] autorelease];

        }
        else
        {
             self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12536689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档