Рассмотрим этот простой воспроизводимый пример, который использует 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()
определяется размером текстового представления, но он просто занимает столько же места, сколько и может, как показано на изображении ниже:
Вопрос
Как мне сделать UIViewRepresentable
представление, которое принимает только необходимое место для этого нужно? Или, например, требуемое пространство, которое нужно детям?
Примечание
Это не только происходит с UITextView
, и я знаю, что для UILabel
установка .fixedSize()
решает проблему, но я ищу решение для любого типа UIView
.