【问题标题】:iphone 5 4 inch [duplicate]iphone 5 4 英寸 [重复]
【发布时间】:2012-09-13 01:50:36
【问题描述】:

可能重复:
How to detect iPhone 5 (widescreen devices)?

我正在使用 Xcode 创建一个应用程序。我注意到使用 xcode 4.5,您的故事板可以适应 iphone 5 的屏幕尺寸。如果我创建了两个具有不同屏幕尺寸的独立故事板,但将控制器链接到同一个 .h 文件,我如何告诉程序根据设备加载哪个故事板?

例如:对于 ipad,当我运行时,它会自动选择正确的故事板

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    当前标记的答案对我不起作用,因此我创建了以下方法来检查当前设备是否具有 4 英寸显示屏。

    - (BOOL)hasFourInchDisplay {
        return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568.0);
    }
    

    因为这是 iPhone 上 4 英寸显示屏的已知高度,所以它是一个很好的指标。

    【讨论】:

    • 我已经停止检查确切的屏幕高度,并且我已经学会了从 NIB 中调整 UI,它的效果出奇的好。我还必须调整图像大小并创建此解决方案。 stackoverflow.com/questions/12648129/…
    • 这个答案对我很有效。我的用例涉及更改滚动视图的高度。我的依赖与滚动视图中的一组文本字段(表单)有关,并且当键盘不存在但 3.5"、4" 和 iPad 的高度不同时,滚动视图需要全屏高度。
    【解决方案2】:

    在您的初始化中添加此代码:

    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
         if([UIScreen mainScreen].bounds.size.height == 568.0)){
                 //move to your iphone5 storyboard
                 [UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
      }
         else{
                 //move to your iphone4s storyboard
                 [UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
      }
    }
    

    .h(头文件)保存初始化。在放置括号 {} 之后和括号内初始化您的数据结构,例如 IBOutlet、int、string。将您的方法放在外面,例如 IBActionvoid

    【讨论】:

    • 我是 iOS 开发新手。哪个文件包含初始化?
    • @Will 这很有趣。 .h(头文件)保存初始化。在 之后放置括号 {} 并在括号内初始化您的数据结构,在外部放置您的方法,例如 IBAction 或 void。
    • 所以要检测使用哪个情节提要,我必须将其放入所有 .h 文件中?
    • 不,检测进入 .m。你对编程不太了解,看一些教程吧。
    • 并不是我对编程一无所知,而是我对Objective-c一无所知,我正在学习教程。
    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2014-03-30
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多