【问题标题】:Use UIViewRepresentable for custom components not working将 UIViewRepresentable 用于自定义组件不起作用
【发布时间】:2020-05-26 14:10:34
【问题描述】:

我使用 UIKit 在 Swift 中编写了很多组件。我现在想在 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”

这种方法适用于 Apple 自己的组件,如 UITextView,但不适用于自定义组件。 如何在 SwiftUI 中使用我自己的组件?

【问题讨论】:

    标签: swiftui custom-controls


    【解决方案1】:

    在这里(使用 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) {
        }
    }
    

    【讨论】:

    • 谢谢,这个错误误导了我。我只是忘记在 updateUIView() 中用 HUIIconView 替换 UITextView。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多