首页 > 解决方案 > 为什么 UIViewRepresentable 会占用所有可用空间?

问题描述

考虑这个使用 UIViewRepresentable 的简单可重现示例:

import SwiftUI

struct MyTextView: UIViewRepresentable {

    func makeUIView(context: Context) -> UITextView {
        return UITextView()
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = String(repeating: "Hello World!", count: 5)
        uiView.font = .systemFont(ofSize: 60)
        uiView.textColor = .white
        uiView.backgroundColor = .green
    }
}

struct ContentView: View {
    var body: some View {
        MyTextView()
    }
}

struct Content_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

我希望它MyTextView()的大小由文本视图的大小决定,但它只占用尽可能多的空间,如下图所示:

示例 UITextView

问题

如何制作UIViewRepresentable只占用所需空间的视图?或者例如孩子们需要的空间?

笔记

UITextView这不仅发生UILabel在 ..fixedSize()UIView

标签: swiftswiftui

解决方案


推荐阅读