Для приложения, которое я создаю, мне нужен текстовый редактор, который заполняет экран телефона и всегда доступен для прокрутки.
Поскольку мне нужен дополнительный контроль над форматирование текста и поведение прокрутки представления, я решил использовать UITextView, завернутый в UIViewRepresentable, а не довольно простой TextEditor из SwiftUI.
Хотя нужное мне поведение прокрутки по умолчанию - это поведение по умолчанию в TextEditor, похоже, оно вообще не происходит в UITextView, пока я вручную не наберу достаточно символов, чтобы представление могло нуждаться в этом.
Я пытался использовать некоторые очевидные переменные и устанавливать рамку UITextView, но безуспешно (последнее, похоже, вообще ничего не делает).
Как я могу сделать UITextView, который имитирует всегда прокручиваемое поведение TextEditor?
import SwiftUI
struct SwiftUIView: View {
var body: some View {
VStack {
TextView()
}
}
}
struct TextView: UIViewRepresentable {
func makeUIView(context: Context) -> UITextView {
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 100, height: 600)) // For example, doesn't seem to make any difference to the height
textView.font = .systemFont(ofSize: 32, weight: .bold)
textView.isScrollEnabled = true
textView.isUserInteractionEnabled = true
textView.showsVerticalScrollIndicator = true
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... epresentab