VisionPro从入门到微懂

前言

  • 成为VisionOS开发者,最少要掌握SwiftUI、RealityKit、ARKit和Accessibility这四块儿相关的技术
图片.png
  • 需要的工具


    图片.png

SwiftUI布局入门篇

在 SwiftUI 中,采用了声明式的方式来定义用户界面。开发者通过描述每个视图的内容、布局和样式,而不需要直接操作底层的 UI 元素或控件。

最常用的构建布局的视图当属:HStack、VStack、ZStack 莫属。

布局样式.png

废话不多说直接上总结:

  1. 将 HStack、VStack、ZStack 视为整体: 这些布局容器可以将它们包含的视图组合在一起,并按照水平、垂直或层叠方式进行排列。
  2. 使用填充布局和间距: 通过在布局容器中使用 leading、trailing、top、bottom 和 Spacer 等修饰符,可以控制视图之间的间距和相对位置。
  3. 牢记布局法则: 包括对齐、间距、层次等布局规则,这些规则可以帮助你创建一致和美观的界面。
  4. 使用 .position 和 .offset 调整位置
  5. 修饰符的顺序有逻辑: 在应用修饰符时,它们的顺序很重要,因为它们会按顺序应用到视图上

SwiftUI 接入 UIKit

UIViewControllerRepresentable
  • 桥接 UIViewController, UIViewControllerRepresentable 协议。

  • 这个协议有两个必须实现的方法,就是 makeUIView 和 updateUIView

public protocol UIViewRepresentable : View where Self.Body == Never {
//UIView的初始化方法,相当于init方法
    func makeUIView(context: Self.Context) -> Self.UIViewType
//当 SwiftUI 当状态发生变化),它会调用此方法。该方法负责将最新的数据更新到 UIView 实例中,以确保视图保持同步。
    func updateUIView(_ uiView: Self.UIViewType, context: Self.Context)
}
  • SwiftUI 从 UIKit 中获取值
    在 UIViewControllerRepresentable 协议中,还有一个东西:
    public protocol UIViewRepresentable : View where Self.Body == Never {
//创建并返回一个协调器实例,该实例负责管理视图的交互逻辑,比如用于将 UIKit 控件的委托方法与 SwiftUI 视图的行为进行关联
    func makeCoordinator() -> Self.Coordinator
}

建议仅支持 iOS13 后的 App,完全使用SwiftUI 框架来实现页面


初识 Vision Pro

Vision Pro@2x.png

创建项目

Xcode创建
在创建新的 visionOS 应用程序时,可以从配置对话框选择应用程序的初始场景类型。如果应用程序主要显示 2D 内容,请选择窗口作为初始场景类型。如果应用程序主要显示 3D 内容,请选择一个体积。此外,还可以添加身临其境的场景,将内容放置在人物的周围环境中。

场景模式

在为 VisionOS 构建应用程序时,请根据应用的需求场景选择。该系统提供了多种显示 3D 内容的方法,包括在现有窗口中、在体积中以及在沉浸式空间中。选择最适合您的应用和您提供的内容的选项。

场景模式.png

氛围样式

氛围样式是app的呈现形式,分为.mixed, .progressive,.full三种,可以通过一个图来理解:

ImmersionStyle@2x.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容