Код: Выделить всё
struct MainView: View {
var body: some View {
ScrollView {
SimpleTextView(text: loremIpsum)
.frame(minHeight: 10)
.border(.red)
SimpleTextView(text: loremIpsum)
.frame(minHeight: 10)
.border(.red)
SimpleTextView(text: loremIpsum)
.frame(minHeight: 10)
.border(.red)
}
}
}
Код: Выделить всё
struct SimpleTextView: UIViewRepresentable {
@State
private var attributedText: NSAttributedString?
var text: String
func makeUIView(context: Context) -> UITextView {
let view = ContentTextView()
view.setContentHuggingPriority(.required, for: .vertical)
view.setContentHuggingPriority(.required, for: .horizontal)
view.isSelectable = true
view.isEditable = false
view.isScrollEnabled = true
view.isUserInteractionEnabled = true
return view
}
func updateUIView(_ uiView: UITextView, context: Context) {
guard let attributedText = attributedText else {
generateAttributedText()
return
}
uiView.attributedText = attributedText
uiView.invalidateIntrinsicContentSize()
}
private func generateAttributedText() {
guard attributedText == nil else { return }
DispatchQueue.main.async {
self.attributedText = NSAttributedString(string: text, attributes: [:])
}
}
private class ContentTextView: UITextView {
override var canBecomeFirstResponder: Bool { false }
override var intrinsicContentSize: CGSize {
frame.height > 0 ? contentSize : super.intrinsicContentSize
}
}
}

Когда isScrollEnabled имеет значение false, я просто получаю пустую страницу.
Спасибо за любую помощь.< /п>
Подробнее здесь: https://stackoverflow.com/questions/791 ... eaks-the-l
Мобильная версия