与 UIKit 框架的集成
Compose Multiplatform 可与 UIKit 框架互操作。您可以将 Compose Multiplatform 嵌入到 UIKit 应用程序中,也可以在 Compose Multiplatform 中嵌入原生 UIKit 组件。本页提供了在 UIKit 应用程序中使用 Compose Multiplatform 以及在 Compose Multiplatform UI 中嵌入 UIKit 组件的示例。
在 UIKit 应用程序中使用 Compose Multiplatform
要在 UIKit 应用程序中使用 Compose Multiplatform,请将您的 Compose Multiplatform 代码添加到任何 容器视图控制器 。以下示例在 UITabBarController
类中使用 Compose Multiplatform:
使用此代码后,您的应用程序应如下所示:

在 示例项目 中探索此代码。
在 Compose Multiplatform 中使用 UIKit
要在 Compose Multiplatform 中使用 UIKit 元素,请将您想要使用的 UIKit 元素添加到 Compose Multiplatform 的 UIKitView 。您可以完全使用 Kotlin 编写此代码,也可以使用 Swift。
在此示例中,UIKit 的 MKMapView
组件显示在 Compose Multiplatform 中。通过使用 Compose Multiplatform 的 Modifier.size()
或 Modifier.fillMaxSize()
函数设置组件大小:
使用此代码后,您的应用程序应如下所示:

现在,让我们看一个高级示例。以下代码将 UIKit 的 UITextField
包装在 Compose Multiplatform 中:
factory
参数包含 editingChanged()
函数和 textField.addTarget()
监听器,用于检测 UITextField
的任何更改。 editingChanged()
函数使用 @ObjCAction
注解,以便与 Objective-C 代码互操作。 addTarget()
函数的 action
参数稍后传递 editingChanged()
函数的名称,以便在响应 UIControlEventEditingChanged
事件时调用它。
UIKitView()
的 update
参数在可观察的 message
状态值更改时调用:
该函数更新 UITextField
的 text
属性,以便用户看到更新后的值。
在 示例项目 中探索此示例的代码。
下一步
您还可以探索 Compose Multiplatform 与 SwiftUI 框架集成 的方式。