首页 > 解决方案 > 如何在 UIkit 中添加 SwiftUI 对象

问题描述

我已经使用 Hosting View Controller 连接了我的 swiftui 类以在故事板(UIkit)中使用 SwiftUI,但问题是我不想在另一个页面中使用它我想将 SwiftUI 变量(图形)添加到与我相同的页面使用 UIkit 创建。如何通过 SwiftUI 在 UIkit 中添加一些东西,是否有类似容器托管视图的东西?Container View 可以帮助您在 View 中添加视图,但您不能像编辑 Hosting View Controller 那样编辑它。请帮我一把。我在下图中展示了我想要 SwiftUI 的位置 在此处输入图像描述

标签: swiftxcodeswiftuiuikitstoryboard

解决方案


如果你想在 SwiftUI 中使用 UIKit,你可以使用UIViewControllerRepresentable(代表 UIKit 视图控制器的视图)。

如果你添加 UiViewControllerRepresentable 协议。你可以在 SwiftUI 中使用 UIViewController。

struct ViewControllerRepresentation: UIViewControllerRepresentable {
    
}

这是示例

final class RedLabel: UILabel {
    override func awakeFromNib() {
        super.awakeFromNib()
 
        textColor = .red
    }
}
 
struct RepresentableRedLabel: UIViewRepresentable {
    var text: String
 
    let redLabel = RedLabel()
 
    func makeUIView(context: Context) -> UILabel {
        redLabel
    }
 
    func updateUIView(_ uiView: UILabel, context: Context) {
        redLabel.text = text
    }
}
 

推荐阅读