簡體   English   中英

如何調整 UIHostingController 的大小以包裝它的 SwiftUI 視圖?

[英]How to resize UIHostingController to wrap it's SwiftUI View?

我有一個基本的 SwiftUI 組件。

struct PopupModal: View {
    var body: some View {
        Text("Hello, World!")
    }
}

struct PopupModal_Previews: PreviewProvider {
    static var previews: some View {
        PopupModal()
    }
}

我有一個UIViewController ,我想實例化這個組件並顯示它。

    private let _popup = PopupModal()
    private lazy var _popupController = UIHostingController(rootView: _popup)

    override public func viewDidLoad() {
        // ...
        self.addChild(_popupController)
        view.addSubview(_popupController.view)
        _popupController.didMove(toParent: self)

    }

    override public func viewDidLayoutSubviews() {
        // How do I make this automatic or as a function of the size of _popup?
        let popupHeight = CGFloat(260)
        _popupController.view.frame = CGRect(x: 15, y: view.bounds.height - popupHeight - 20, width: view.bounds.width - 30, height: popupHeight)
    }

顯示了PopupModal ,但我正在手動調整它的高度。 如何根據內容的大小調整它的大小?

您可以使用

  _popupController.view.sizeToFit()

使視圖最初適合其內在內容,並在添加到超級視圖后使用自動布局約束根據需要對其進行布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM