通过 addSubView 将 SwiftUI View 添加到 UIKit 两个 UIView。第一个是添加,第二个不是

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

我将 SwiftUI 视图“TestView”添加到 contentView1 和 contentView2。但它仅添加到 contentView2 中。 任何人请帮助我理解为什么 SwiftUI View 没有添加到 contentView1。我已确保插座连接正确。

class ViewController: UIViewController {

    
    @IBOutlet var contentView1: UIView!
    @IBOutlet var contentView2: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let vc = UIHostingController(rootView: TestView())
        vc.view.translatesAutoresizingMaskIntoConstraints = false
        self.addChild(vc)
        contentView1.addSubview(vc.view)
        contentView2.addSubview(vc.view)
        vc.didMove(toParent: self)
    }
}

struct TestView: View {
    var body: some View {
        Text("SwiftUI")
            .onAppear(perform: {
                print("OnAppear Called")
            })
    }
}

ios swiftui uikit addsubview
1个回答
1
投票
        contentView1.addSubview(vc.view)
        contentView2.addSubview(vc.view)

一个给定的视图只能有一个父视图 - 您不能将相同的视图添加到两个不同的视图并期望它显示两次。创建两个单独的视图并将它们添加到每个内容视图中,您将看到它们。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.