Используйте UIViewRepresentable, если пользовательские компоненты не работают - PullRequest
0 голосов
/ 26 мая 2020

Я написал много компонентов на Swift, используя UIKit. Я бы хотел использовать эти пользовательские компоненты с SwiftUI сейчас. Я создаю структуру с помощью UIViewRepresentable:

struct MyIcon: UIViewRepresentable {
    func makeUIView(context: Context) -> HUIIconView {
        return HUIIconView()
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
    }
}

Мой HUIIconView определяется следующим образом:

@IBDesignable @objc public class HUIIconView: UIView

Xcode дает мне следующую ошибку:

Type ' MyIcon 'не соответствует протоколу' UIViewRepresentable '

Этот подход прекрасно работает с собственными компонентами Apple, такими как UITextView , но не работает для пользовательских компонентов. Как я могу использовать собственные компоненты со SwiftUI?

1 Ответ

0 голосов
/ 26 мая 2020

Вот (проверено с Xcode 11.4)

@IBDesignable @objc public class HUIIconView: UIView {

}

struct MyIcon: UIViewRepresentable {
    func makeUIView(context: Context) -> HUIIconView {
        return HUIIconView()
    }

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