Подход к использованию представления SwiftUI вместе с UIView - PullRequest
0 голосов
/ 31 января 2020

Я использую стороннюю библиотеку, разработанную с UIKit. Для его API требуется ссылка на UIView.

Как я могу использовать эту библиотеку внутри SwiftUI? И как я могу преобразовать представление SwiftUI в UIView?

Я пытался создать UIViewRepresentable, например:

struct SomeView: UIViewRepresentable {

    let contentViewController: UIViewController

    init<Content: View>(contentView: Content) {
        self.contentViewController = UIHostingController(rootView: contentView)
    }

    func makeUIView(context: Context) -> UIKitView {

        // Whatever I do here doesn't work. Frame is always 0

        contentViewController.loadViewIfNeeded() 
        contentViewController.view.setNeedsDisplay()
        contentViewController.view.layoutIfNeeded()

        print(contentViewController.view.frame)

        let uikitView = UIKitView()
        uikitView.show(contentViewController.view)
        return popover
    }

    func updateUIView(_ uiView: UIKitView, context: Context) {
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...