iPhone 6 不同的故事板?

2023-12-06

当我们拥有iPhone 4 and 5,我们检查了屏幕尺寸,并为每部 iPhone 制作了 2 个故事板。

 //iPhone 4
    if (height == 480)
    {
        storyboard = [UIStoryboard storyboardWithName:@"StoryboardiPhone" bundle:nil];
         NSLog(@"Device has a 3.5inch Display.");
    }
    //iPhone 5
    else  if (height == 568)
    {
        storyboard = [UIStoryboard storyboardWithName:@"StoryboardiPhone5" bundle:nil];
          NSLog(@"Device has a 4inch Display.");
    }
    //iPads
    else
    {
        storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
        NSLog(@"Device has a iPad Display  ");

    }

现在又多了2部iPhone,问题是,做对吗?5 storyboards适用于所有 iPhone 和 iPad ?在我看来,这是一件错误的事情,但我找不到一种方法来排列一个设备中的视图,并使其适合所有其他设备 - 并且确保它always效果很好。

现在正确的做法是什么?


最好的方法是使用自动布局,但如果由于某种原因您仍然必须针对不同的屏幕尺寸使用不同的故事板,以下是有效的代码。

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
    //iPad
    storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
}else{
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone){
        // The iOS device = iPhone or iPod Touch
        CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
        if (iOSDeviceScreenSize.height == 480){
            // iPhone 3/4x
            storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone3_4X" bundle:nil];
        }else if (iOSDeviceScreenSize.height == 568){
            // iPhone 5 - 5s - 4 inch
            storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5_5S" bundle:nil];
        }else if (iOSDeviceScreenSize.height == 667){
            // iPhone 6 4.7 inch
            storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone6" bundle:nil];
        } else if (iOSDeviceScreenSize.height == 736){
            // iPhone 6 Plus 5.5 inch
            storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone6Plus" bundle:nil];
        }

    }
}

要启用本机 iPhone 6 和 iPhone 6 plus 屏幕分辨率,请添加启动图像

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 6 不同的故事板? 的相关文章

随机推荐

  • 如何使用Python解压gz文件

    我需要将从 FTP 站点下载的 gz 文件提取到本地 Windows 文件服务器 我已经为文件的本地路径设置了变量 并且我知道它可以被 GZIP muddle 使用 我怎样才能做到这一点 GZ 文件内的文件是 XML 文件 import g
  • 如何使 jQuery UI 选项卡出现在页面底部

    有没有办法让 jQuery UI 选项卡小部件选项卡出现在页面底部 使用 jQuery 站点中的示例
  • WebRTC 远程视频流不工作

    我添加了一个简单的 webRTC 应用程序 它将浏览器窗口连接到自身 从我的相机流式传输视频数据 最终目标是在页面上获取两个视频流 一个直接来自摄像头 另一个来自浏览器本地建立的 WebRTC 连接 不幸的是 远程视频流没有显示 知道为什么
  • 当我尝试测试我的应用程序时,Eclipse 无法识别我的 Android 平板电脑?

    最近我买了一台新的 Android 平板电脑 一款无名的中国平板电脑 我想测试我正在其上开发的应用程序 但是 当我尝试通过 Eclipse 运行它时 它无法识别我的平板电脑 平板电脑上启用了调试模式 当我看到选择设备对话框时 序列号 AVD
  • 使用角材料5上传文件

    我尝试使用角度材料 5 上传文件 角度 5 应用程序组件 html
  • 如何调试图表包“没有名为“plot”的模块”错误

    我正在一台 Windows 机器上使用 Anaconda 套件中的 Python3 和 IPython 笔记本 我跑了一个 pip install charts 安装软件包 我试图通过一些灵活和交互式的图表找到我的方法 任何建议表示赞赏 安
  • 使用 CMakeExternalProject_Add 构建 mongo-cxx-driver

    我正在尝试建立mongo cxx driver在基于 CMake 的项目中 该项目应该在 Windows macOS 和 ubuntu 容器中构建 我想确保所有这些平台上的软件将使用相同的驱动程序版本 因此我无法通过以下方式安装驱动程序及其
  • Java Runtime.getRuntime().exec() 似乎正在覆盖 $PATH

    对于一个自动化一些突变充分性测试的项目 我正在尝试从 Java 程序内部的源代码制作 GoLang 我已经能够从终端中的源代码中创建它 并尝试在 Java 中使用该命令Runtime getRuntime exec 命令 String en
  • 我们如何将 void_t 用于 SFINAE?

    我观看了 Walter Brown 在 Cppcon14 上关于现代模板编程的演讲 Part I Part II 他在那里展示了他的void tSFINAE 技术 Example 给定一个简单的变量模板 其计算结果为void如果所有模板参数
  • Retrofit + OkHTTP - 响应缓存不起作用

    我知道有很多类似的问题 但我已经阅读了所有这些问题 但没有一个真正有帮助 所以 这是我的问题 我正在使用 Retrofit okhttp 从 API 获取一些数据 我想缓存它们 不幸的是 我没有 API 服务器的管理员访问权限 因此无法修改
  • Google Glass 将视频流传输到服务器

    我正在尝试为 Google Glass 构建一个应用程序 它可以流式传输到服务器并让客户端通过网络浏览器查看流 到目前为止 我似乎需要通过 RTSP 到媒体服务器 例如 Wowza 执行此操作 然后拥有一个托管一些视频播放器的 Web 服务
  • 包含 url 值的 PHP 数组到包含组合值的新数组

    我已经尝试了很长时间 但找不到一种将数组合并到新数组的方法 大多数时候我迷失在循环和匹配中 我想收到一个可以执行以下操作的 php 5 方法 实施例1 假设有一个包含如下 url 的数组 Array a a b c a b c d e a
  • JSP - 如何在 session.setAttribute 中传递 javascript var? [复制]

    这个问题在这里已经有答案了 刚开始学习 JSP 并尝试在两个页面之间传递数据 我想知道是否可以将 javascript 变量传递给session setAttribute 目前 我可以通过 2 个 jsp 文件传递 一串文本 如下所示 JS
  • 如何修复 src 文件系统问题上的资源更改

    我正在尝试使用Hive关于 MR 执行SQL它中途失败并出现以下错误 Application application 1570514228864 0001 failed 2 times due to AM Container for app
  • 关于 PYTHONPATH 的 Python 2.x 多版本问题

    系统中安装了Python 2 6 现在我想使用Python 2 7中引入的模块 因为我没有root权限 所以我在我的主目录 HOME local 下构建并安装了2 7 我将以下内容添加到我的 HOME bashrc 中 export PAT
  • 用2个方阵模拟matlab的mrdivide

    我有 2 个 19x19 方阵 a 和 b 我尝试使用斜杠 mrdivide 运算符来执行除法 这样 c a b 我正在尝试在 OpenCV 中实现这一点 我发现一些人建议使用cv solve但到目前为止 我还没有找到任何可以给我提供接近
  • C++:提取 boost::variant 元素的大小

    我有一个向量 其中包含带有 boost variant 元素的结构 现在我必须序列化这个向量 由于规范的原因 我必须计算保存该向量所需的八位字节 现在我正在寻找一种方法来以简单的方式实现这一点 int allSize 0 for auto
  • 为什么 Laravel 的 Composer 创建项目执行失败?

    看来除非我使用sudo我的 Composer 命令无法创建 Laravel 项目 Without sudo它给了我以下错误 ErrorException copy Users H composer cache files laravel l
  • Python随机样本生成器(适应庞大的人口规模)

    你可能知道random sample population sample size 快速返回一个随机样本 但是如果你事先不知道样本的大小怎么办 你最终会对整个总体进行抽样 或者对其进行洗牌 这是相同的 但这可能是浪费的 如果大多数样本量与总
  • iPhone 6 不同的故事板?

    当我们拥有iPhone 4 and 5 我们检查了屏幕尺寸 并为每部 iPhone 制作了 2 个故事板 iPhone 4 if height 480 storyboard UIStoryboard storyboardWithName S