我在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给了我以下错误。
类型'MyIcon'不符合协议'UIViewRepresentable'。
这种方法可以很好地与苹果自己的组件合作,如 UITextView 但对自定义组件不适用。我如何在SwiftUI中使用自己的组件?
下面是(用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) {
}
}