ios - 如何在 SwiftUI 的 ScrollView 中制作动画?SwiftUI 中的手风琴风格动画
问题描述
我正在尝试使用 SwiftUI 构建带有动画的手风琴样式视图。但是,如果我将动画包装到 ScrollView 中,动画将无法正常工作。下面是我正在尝试解决的代码。
struct ParentView: View {
@State var isPressed = false
var body: some View {
GeometryReader { geometry in
ScrollView {
Group {
SampleView(index: 1)
SampleView(index: 2)
SampleView(index: 3)
SampleView(index: 4)
}.border(Color.black).frame(maxWidth: .infinity)
}.border(Color.green)
}
}
}
struct SampleView: View {
@State var index: Int
@State var isPressed = false
var body: some View {
Group {
HStack(alignment:.top) {
VStack(alignment: .leading) {
Text("********************")
Text("This View = \(index)")
Text("********************")
}
Spacer()
Button("Press") { self.isPressed.toggle() }
}
if isPressed {
VStack(alignment: .leading) {
Text("********************")
Text("-----> = \(index)")
Text("********************")
}.transition(.slide).animation(.linear).border(Color.red)
}
}
}
}
下面是我面临的问题的截图。
解决方案
推荐阅读
- jquery - 如何让输入焦点边框样式恢复正常状态?
- javascript - 存储与javascript循环的输入值
- react-native - 调用后无法清除 AbortController.abort()
- http - 无法让 SSL 加密与负载平衡一起使用(HTTPS 重定向问题)
- python - 如何在 TensorFlow 2 中保存/加载模型的一部分?
- c++ - 从末尾开始查找字符串中的子字符串
- python - 为什么 Cython 期望 0 维?
- amazon-cloudformation - ParameterOverrides 的 CloudFormation 语法
- r - 如何解决错误:在 r 上提供连续刻度的离散值
- php - PHP覆盖数组mysql查询?