Как интегрировать собственные представления SwiftUI в Compose Multiplatform с помощью UIKitView?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как интегрировать собственные представления SwiftUI в Compose Multiplatform с помощью UIKitView?

Сообщение Anonymous »

Я создаю приложение Compose Multiplatform (CMP), и мне нужно использовать некоторые собственные компоненты, специфичные для iOS (например, MapKit или пользовательскую диаграмму SwiftUI), которые уже встроены в SwiftUI.
Хотя CMP обеспечивает отличное совместное использование пользовательского интерфейса, мне необходимо убедиться, что эти конкретные компоненты сохраняют свою исходную производительность и внешний вид. Я понимаю, что мне нужно использовать UIKitView для соединения собственных представлений iOS, но я борюсь с шаблоном, необходимым для переноса SwiftUI View во что-то, что Compose может отображать в iosMain.
Цель:
Я хочу передать строку заголовка из моего общего кода Compose и отобразить ее внутри собственного SwiftUI VStack.
Моя текущая настройка:
В моем commonMain у меня есть функция ожидания:
Kotlin

Код: Выделить всё

@Composable
expect fun NativeButton(title: String, onAction: () -> Void)
Задача:
Как реализовать фактическую часть в iosMain? В частности:
  • Как использовать UIHostingController для преобразования представления SwiftUI в UIViewController?
  • Как извлечь UIView из этого контроллера для использования внутри фабрики UIKitView?
  • Как мне обрабатывать обновления, если title изменяется состояние в Compose?
Будем очень признательны за любые рекомендации по стандартным шаблонам 2026 года для этого взаимодействия!

Подробнее здесь: https://stackoverflow.com/questions/798 ... -uikitview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»