versionOS学习笔记,WWDC23 Meet UIKit for spatial computing

186 阅读2分钟

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 都可以表现出正确的外观。

image.png 字号也是类似的。

image.png

导航条在xr上有玻璃背景,这个是UINavigationController和 UISplitViewController的默认设置。 这样可以使用户周围的环境 渗透进背景。 你也可以在 UIViewController 上 覆盖新的 preferredContainer BackgroundStyle 属性, 以返回 .automatic .glass 或 .hidden

class MyViewController: UIViewController {
    override var preferredContainerBackgroundStyle: UIContainerBackgroundStyle (
        return glass
    }
}

悬停效果
UIView 中有一个新属性, HoverStyle 你可以通过设置hoverStyle 属性来定制视图的悬停效果, 可以选择高亮显示或是上浮。 你也可以将该属性设置为无 来关闭悬停效果。 如果想更进一步,你还可以使用新的UIShape API来提交想要的悬停效果的形状.

image.png

输入输出优化

推出了一种全新的与内容交互的输入系统。当用户看向某一元素捏合然后松开手指就相当于进行了 一个 TapGesture。 捏住手指并移动手,最后松开, 就相当于PanGesture。 如果距离App足够近,也可以直接伸出手触摸它。如果你连接了触控板, 还可以通过它与系统进行交互。 Apple 的辅助功能技术在设备上同样可用。旁白和切换控制可以让所有人使用你的App。

App视图过渡模式
主要有三种模式

image.png

Presentations
类似原有视图转换。
Ornaments装饰
主要用在视图外部的范围,给工具栏等view,放置。例如左侧,下面和上面的位置。

image.png

RealityKit
使用系统封装的UIHostingController或者其他RealityView

image.png

总结:

image.png