使用UIViewRepresentable使自定义组件无法工作

问题描述 投票:0回答:1

我在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中使用自己的组件?

swiftui custom-controls
1个回答
0
投票

下面是(用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) {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.