SwiftUI:Swift项目(UIKit)中调用SwiftUI并传值

在UIKit中调用SwiftUI,需要使用UIHostingController对SwiftUI的view进行包装,代码如下:
import UIKit
import SwiftUI

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        SwiftUiView.textStr = "SwiftUiView"
        SwiftUiView.color = .red
        let vc = UIHostingController(rootView: SwiftUiView())
        vc.view.frame = self.view.bounds
        self.view.addSubview(vc.view)
        
    }
}




// SwiftUI
struct SwiftUiView: View {
    
    static var textStr : String = ""
    static var color : Color?
    
    var body: some View{
        
        VStack(){
            Spacer()
            HStack{
                Spacer()
                Text(SwiftUiView.textStr)
                Spacer()
            }.padding(0)
            Spacer()
        }.background(SwiftUiView.color).padding(0)
    }
}
效果如下:
1.jpg
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容