#ios #swiftui #swiftui-list
Вопрос:
У меня есть список в SwiftUI с. InsetGroupedListStyle
Как правило, это работает хорошо, но иногда высота текста в разделе будет неправильной до тех пор, пока он не будет прокручиваться. По-видимому, это зависит от длины текста. Я добавил .fixedSize(horizontal: false, vertical: true)
, что помогает в некоторых случаях, но не во всех.
Есть ли что-нибудь еще, что я могу сделать, чтобы заставить представление правильно расположиться, или это ошибка? Он также не работает в iOS 15.
В приведенном ниже примере URL-адрес показан в виде текста, но я видел это в других сценариях с простым текстом.
import SwiftUI
struct ContentView: View {
var body: some View {
List {
Section(header: Text("Header Title")) {
VStack {
Spacer()
.frame(height: 8)
Text("https://example.govt.nz/notice/id/2021-go1593")
.fixedSize(horizontal: false, vertical: true)
}
}
}
.listStyle(InsetGroupedListStyle())
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Изначально выглядит так:
После прокрутки выглядит так:
Если я удалю VStack и распорку, проблема все еще существует, хотя и не так заметна, но все еще существует:
List {
Section(header: Text("Header Title")) {
Text("https://example.govt.nz/notice/id/2021-go1593")
.fixedSize(horizontal: false, vertical: true)
}
}
.listStyle(InsetGroupedListStyle())
На этот раз перед прокруткой:
И после прокрутки:
Комментарии:
1. Для меня как с этим, так и без
fixedSize
этого все работает нормально, убедитесь, что вы можете воспроизвести его на игровой площадке.2. Спасибо, Филип, я изменил код, чтобы показать свой точный сценарий. Хотя я сталкивался с таким поведением во многих других сценариях. Если вы протестируете вышесказанное на iphone12 PRO MAX, вы увидите проблему.