大多数浏览器和
Developer App 均支持流媒体播放。
-
为 iPhone XS、iPhone XS Max 和 iPhone XR 构建 App
如果您的 app 已采用安全区域嵌入技术,您便可以轻松地为 iPhone XS、iPhone XS Max 和 iPhone XR 更新这一 app。学习如何在不更改代码的情况下设置集合视图对安全区域的分区嵌入引用。了解专门针对 iPhone XS Max 和 iPhone XR 所做的 API 更改。确保您的全屏 app 会使用适当的点数和分辨率正确地展开。避开某些常见的误区,确保所有客户都能充分利用 app 的所有功能,同时保持相应的最佳做法以减少未来工作所需的时间和精力。
资源
相关视频
Tech Talks
-
下载
Betsy Langowski:在 2017 年 我们发布了 iPhone X 借助于 iOS 11 的 SDK 你的 App 获得了崭新的出色外观 今年 我们将发布 iPhone XS iPhone XS Max 以及 iPhone XR 其中 iPhone XS 虽有着彻底的重新设计 它的屏幕尺寸仍与 iPhone X 相同 所以这段视频将主要介绍具备不同分辨率的 iPhone XS Max 和 iPhone XR 如果你的 App 主要使用 UIKit 框架 并且你已经为 iPhone X 适配了你的 App 那么你就不必大费周章 只需链接到 iOS 12 就可以充分利用这些优秀的新机型 如果你需要复习一下如何为 iPhone X 以及新款 iPhone XS Max 和 iPhone XR 更新你的 App 请观看视频“为 iPhone X 开发 App” 本视频将向你介绍如何确保 原深感摄像头不会遮挡你的 UI 确保你的 UI 元素被放置在 远离 Home Indicator 的位置 以及其他常见的你可能需要进行的调整 虽然大部分繁重的工作都是由 UIKit 来完成的 但是你仍然需要优化你的 App 本视频将指导 如何为 iPhone XS Max iPhone XR 以及 iPhone X 优化 App 让我们来谈谈 今年我们做出了哪些改进 让你能够更加轻松地为 iPhone XS Max 和 iPhone XR 的 App 进行更新 如果你观看了“为 iPhone X 开发 App” 你一定会记得在宽屏模式下测试的重要性 其中关键的一点就是集合视图 我已经构建了这个非常简单的示例 App 它是一个集合视图控制器 嵌入到一个导航控制器中 又被嵌入到一个标签栏控制器中 我们使用 offsets 来分隔单元格 然而这里只是使用默认值 乍一看 在竖屏模式中 它看起来不错 但是在宽屏模式时 这款 App 出现了一个问题 左侧的单元格被原深感摄像头遮住了 为了解决这个问题 集合视图的 sectionInsetReference 需要设置为 safeArea 而不是默认的 contentInset 这可以在代码中完成 起初在 iPhone X 发布时 这也是唯一的解决办法 但是如果这个 App 是用 Storyboard 构建的 在最近的 Xcode 中 我们可以直接在 Interface Builder 中 做出这样的改变 在 Storyboard 中选择 Collection View 后 我们可以选择 Size Inspector 并将 Inset from value 改为 safe area 现在当我构建好并且运行我的 App 时 我的集合视图就会在宽屏模式中 避开了原深感摄像头 不需要编写代码就能完成 自动布局是 Cocoa 与 Cocoa Touch 布局系统 如果你的 App 使用自动布局 你会发现 它会帮助你完成绝大部分 针对新的屏幕尺寸进行的优化 比如 iPhone XS Max 和 iPhone XR 如果你还没有享用 自动布局所带来的巨大便利 现在肯定是时候更新了 因为今年 我们大幅地提升了它的性能 这里有一些具体数据 灰色代表了 iOS 11 自动布局的性能 蓝色代表了 iOS 12 自动布局的性能 看看 iOS 12 和 iOS 11 相比 移动树所需的时间少了多少 在你的 App 中使用自动布局 将变得更加高效 如果你想了解我们 是如何做到这一点的 可以观看 WWDC 2018 中的视频 “高性能自动布局” 在 iPhone XS Max 和 iPhone XR 中 一个特别的变化是 UISplitViewController 在宽屏模式中的行为 它与 iPad 竖屏模式的邮件 App 中 UISplitViewController 的行为相似 让我们看看我在 iPhone XS Max 模拟器上 做的这个非常简单的测试 App 我的主视图有四个单元格 按下按钮就会进入 或者退出 我的 App 在新的硬件上 会自动获得这种行为 因为我设置了一个 displayModeButtonItem 如果你使用 presentsWithGesture 这个行为也会被设置 让我们看看代码中它是什么样子的 在我的 AppDelegate 中 我将 UISplitView Controller.displayModeButtonItem 设置成 navigationItem.leftBarButtonItem 以供我的客户轻点 现在我已经选择了 iPhone XS Max 和 iPhone XR 上的行为 我也设置了 presentsWithGesture 为 true 这将允许我的客户 通过滑动访问主视图 这是可选的 如果 App 不需要 它也可以设置为 false 有一点需要注意 如果你习惯于设置 preferredDisplayMode 为 automatic 那么这就是 automatic 行为 如果你已经进行了一些定制 并且不想要选择这个行为 那么只需完全避免使用 displayModeButtonItem 并将 presentsWithGesture 设置为 false 你还可以将 preferredDisplayMode 设置为 allVisible 好的 让我们继续讨论一些常见的陷阱 有些 App 可能会将背景图像 设置为特定的尺寸 或者将某些资源固定在屏幕上的某个位置 这在游戏中是最常见的 但是你的 App 出于各种原因 也可能使用这样的技术 如果你的 App 已经设置了缩放图像 当你在 iPhone XS Max 或 iPhone XR 上运行它时 你可能会注意到内容缩放不正确 与使用标准 UIKit 框架的 App 不同 因为这些机型与以往不同 你可能需要做一些特殊的设置 并将新屏幕的信息 告诉你的 App 或者你的 App 正在使用的框架 iPhone XR 和 iPhone XS Max 的 显示尺寸都是 414 点宽 896 点高 在构建资源时 请记住 iPhone XR 是 @2x 设备 iPhone XS Max 是 @3x 设备 以像素为单位 iPhone XR 的分辨率是 828 × 1792 像素 iPhone XS Max 的分辨率是 1242 × 2688 像素 请注意 只有在框架绝对需要时 你才应该硬编码屏幕尺寸 虽然这可以使你的游戏或类似的 App 在一开始就运行 除非你绝对需要 你应该避免使用这些方法 请让 UIKit 替你完成这个工作 并用自动布局代替 虽然在不同的硬件模型上 强制 App 以特定的方式运行可能很诱人 但是你应该避免为每一个硬件 分别设置特例 这将占用开发新特性的时间 而且这在很大程度上是冗余的工作 除此之外 当你的代码在手机模型上运行时 它将无法识别 意料之外的问题就可能发生 如果你不能立即更新你的 App 这就会损害客户的使用体验 如果你针对 iPhone X 为你的 iOS App 做了一个特例 现在你就不得不为 iPhone XS Max 和 iPhone XR 重新做一遍这些冗杂的工作 即使你需要在 App 中设置尺寸 以适应图形需求 也不要在 string check 后 搜索设备模型和 gate 行为 你永远不应该写这样的代码 “这是 iPhone X 吗? 执行 A 如果不是 执行 B” 这是一个很好的机会 可以确保你在整个 App 中 都采用了安全区域设置 并且为将来节省了大量的时间和精力 当你在寻找特性可用性的时候 现在也是一个非常好的时机去认真考虑 你应该如何对代码进行分支 就像你已经支持的其他 iPhone 一样 比如 iPhone SE 和所有的 iPad iPhone XR 并不支持三维触控和双摄像头 所以不依赖这些行为是十分重要的 让我们以三维触控为例 家庭 App 是一个很好的例子 它在支持的设备上使用三维触控 但在不支持三维触控的设备上 或者为那些已经关闭这项功能的用户 提供完整的特性集 检查设备是否使用三维触控很简单 让我们来看一些示例代码 首先 在启动时检查 设备是否支持该特性 就像这里突出显示的那样 但是请记住 用户也可能在 App 运行时 关闭了三维触控 因此 你还应该将此检查 作为委托方法 traitCollectionDidChange () 的实现的一部分 无论哪一种情况 对代码进行分支 从而为不支持三维触控的设备 使用诸如 UILongPressGestureRecognizer 的替代方法 以便为所有设备提供完整的特性集 当有疑问时 确保你的代码能够处理 nil 并且足够稳健 能够在返回一些意料之外的结果时 从容地处理失败 今年 对于大多数 App 来说 为支持 iPhone XS iPhone XS Max 和 iPhone XR 所需的工作并不多 如果你已经为 iPhone X 进行过优化更是如此 如果你需要任何支持 你可以从 iPhone X 视频 以及今年的 WWDC 2018 大会中获得很多支持 查看相关内容 你可以在 developer.apple.com 上 找到更多内容
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。