Почему UIViewRepresentable занимает все доступное пространство? - PullRequest
1 голос
/ 02 мая 2020

Рассмотрим этот простой воспроизводимый пример, который использует 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() определяется размером текстового представления, но он просто занимает столько же места, сколько и может, как показано на изображении ниже:

Example UITextView

Вопрос

Как мне сделать UIViewRepresentable представление, которое принимает только необходимое место для этого нужно? Или, например, требуемое пространство, которое нужно детям?

Примечание

Это не только происходит с UITextView, и я знаю, что для UILabel установка .fixedSize() решает проблему, но я ищу решение для любого типа UIView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...