SuperAPI AI 工具集

swiftui-uikit-interop

通用与其它

查看项目

更新于 10-15 23:34

技能介绍

用途:在 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 版本约束。其余细节暂未提供。