Я использую SwiftUI для анимации развертывания и свертывания в списке.
Как получить плавное увеличение высоты раздела, как это было бы в UIKit с табличным представлением?
struct Rows: View {
let rows = ["Row 1", "Row 2", "Row 3", "Row 4", "Row 5"]
var body: some View {
Section {
ForEach(rows.identified(by: \.self)) { name in
Text(name)
.lineLimit(nil)
}
}
}
}
struct Header: View {
@State var isExpanded: Bool = false
var body: some View {
VStack(alignment: .leading) {
Button(action: {
self.isExpanded.toggle()
}) {
Text(self.isExpanded ? "Collapse Me" : "Expand Me")
.font(.footnote)
}
if self.isExpanded {
Rows().animation(.fluidSpring())
}
}
}
}
struct ContentView : View {
var body: some View {
List(0...4) { _ in
Header()
}
}
}
Похоже, анимация применяется только к тексту в строках, а не к фактической высоте или линии разделителя, растущей для размещения новых строк.Также кажется, что текст строки начинает анимацию с самой верхней части строки, а не там, где он появляется в иерархии представления.Мне нужна плавная анимация.