用途:在 SwiftUI 与 UIKit 之间双向互通。一方面把 UIKit 视图和视图控制器包装成可在 SwiftUI 中使用的组件,另一方面用 UIHostingController 把 SwiftUI 视图嵌入 UIKit 界面,并同步跨边界状态。资料标注目标为 iOS 26+ 与 Swift 6.3 写法,未特别说明处可回溯兼容 iOS 16。
主要能力:UIViewRepresentable 包装任意 UIView;UIViewControllerRepresentable 包装 UIViewController,常用于系统选择器、文档扫描、邮件撰写等模态控制器;Coordinator 类承担 UIKit 代理与数据源;UIHostingController 嵌入 SwiftUI,并支持 sizingOptions(iOS 16+)的 .intrinsicContentSize 与 .preferredContentSize;UIHostingConfiguration(iOS 16+)直接在单元格中渲染 SwiftUI;sizeThatFits(iOS 16+)自定义尺寸提案;@Binding 双向同步、闭包单向事件、context.environment 读取环境值;@MainActor 与 Sendable 并发注意事项。
必要用法要点:视图与控制器在 makeUIView / makeUIViewController 中创建一次,只在 updateUIView / updateUIViewController 中更新;代理在 make* 中设置,不在 update* 中设置;嵌入 UIHostingController 必须按 addChild、添加视图、didMove(toParent:) 三步进行;在 dismantleUIView 中清理观察者、定时器与订阅;updateUIView 中加差异判断避免更新循环;闭包用 [weak coordinator] 防止循环引用。
适用场景:需要复用既有 UIKit 组件、引入系统模态控制器、或把 SwiftUI 逐步嵌入既有 UIKit 项目。
限制:文档未提供官方仓库、安装命令、收费与价格信息;具体 API 可用性受 iOS 版本约束。其余细节暂未提供。