Here is possible solution with fluent row height change (using AnimatingCellHeight
modifier taken from my solution in SwiftUI – Animations triggered inside a View that’s in a list doesn’t animate the list as well ).
Tested with Xcode 11.4 / iOS 13.4
struct MyView: View {
@State var isDisclosed = false
var body: some View {
Form {
Spacer()
ZStack(alignment: .topLeading) {
Rectangle()
.fill(Color.red)
.frame(width: 100, height: 100)
.zIndex(1)
.onTapGesture { withAnimation { self.isDisclosed.toggle() } }
HStack {
Rectangle()
.fill(Color.blue)
.frame(width: 100, height: 100)
}.frame(maxHeight: .infinity, alignment: .bottom)
}
.modifier(AnimatingCellHeight(height: isDisclosed ? 150 : 100))
Spacer()
}
}
}