visionOS 除了需要使用swiftUI,同样需要使用UIKit。
- 将原有App添加到visionOS 步骤
target->General supported Desinations 中加入xrOS Device 加入后assets 中加入对应资源图标。因为新平台图标也可以有新形势。 - 平台差异
新平台需要支持iOS 14以上,不能支持在iOS 14之前弃用的API 比如,UIDeviceOrientation。 这个API默认设备可以在多个方向上使用, 但此处并不适用。 同样的,还有 UIScreen。 对于这个设备, 硬件屏幕的单一表示的 前提并不成立。 而且标签页栏的设计有很大的不同, 不再只是从前到后, 因此它的 leadingAccessoryView 和 trailingAccessoryViews 也不可用。具体的可以在看苹果文档。 一些在xrOS平台不支持的代码可以用平台宏隔离。 #if !os(xrOS) #endif - App 提升
xrOS上不要使用RGB值自己定义颜色, 而是使用系统提供的颜色, 这样不管在哪个平台上运行, 你的 App 都可以表现出正确的外观。
字号也是类似的。
导航条在xr上有玻璃背景,这个是UINavigationController和 UISplitViewController的默认设置。 这样可以使用户周围的环境 渗透进背景。 你也可以在 UIViewController 上 覆盖新的 preferredContainer BackgroundStyle 属性, 以返回 .automatic .glass 或 .hidden
class MyViewController: UIViewController {
override var preferredContainerBackgroundStyle: UIContainerBackgroundStyle (
return glass
}
}
悬停效果
UIView 中有一个新属性, HoverStyle
你可以通过设置hoverStyle 属性来定制视图的悬停效果, 可以选择高亮显示或是上浮。 你也可以将该属性设置为无 来关闭悬停效果。 如果想更进一步,你还可以使用新的UIShape API来提交想要的悬停效果的形状.
输入输出优化
推出了一种全新的与内容交互的输入系统。当用户看向某一元素捏合然后松开手指就相当于进行了 一个 TapGesture。 捏住手指并移动手,最后松开, 就相当于PanGesture。 如果距离App足够近,也可以直接伸出手触摸它。如果你连接了触控板, 还可以通过它与系统进行交互。 Apple 的辅助功能技术在设备上同样可用。旁白和切换控制可以让所有人使用你的App。
App视图过渡模式
主要有三种模式
Presentations
类似原有视图转换。
Ornaments装饰
主要用在视图外部的范围,给工具栏等view,放置。例如左侧,下面和上面的位置。
RealityKit
使用系统封装的UIHostingController或者其他RealityView
总结: