ScrollView 中的动画缺少 SwiftUI 中的最后一个对象
Posted
技术标签:
【中文标题】ScrollView 中的动画缺少 SwiftUI 中的最后一个对象【英文标题】:Animation in ScrollView is missing the last object in SwiftUI 【发布时间】:2021-01-12 17:55:59 【问题描述】:我正在尝试创建一个对象列表,当填充每个对象时,其动画将根据其在数组中的位置产生延迟。
为了复制我的问题,代码如下:
struct ScrollViewTest: View
@State private var indexes = [Int]()
var body: some View
VStack
ForEach(indexes, id:\.self) index in
Text("Index: \(index)")
.transition(.opacity)
.onAppear
for index in 0..<9
withAnimation(Animation.easeInOut.delay(Double(index) * 0.5))
indexes.insert(index, at: index)
如您所见,Index 8
在动画开始之前就已经可见。
我该如何解决这种问题?
【问题讨论】:
您正在动画插入到一个数组中——您希望这个动画看起来像什么? 因为我希望动画看起来惊人。所以我想为它使用索引。 你能添加一个视频来展示它对你的看法吗?它在 Xcode 12.3、ios 14.3 中按预期工作。 【参考方案1】:我在 Swift 5,Xcode 版本 12.3 上没有看到问题。
【讨论】:
【参考方案2】:显然,此问题仅在实时预览中出现。 我的错误是我确定有问题,因为我使用实时预览来检查动画。
【讨论】:
以上是关于ScrollView 中的动画缺少 SwiftUI 中的最后一个对象的主要内容,如果未能解决你的问题,请参考以下文章
水平 ScrollView (SwiftUI) 中的动画展开/折叠组