SwiftUI 动画错误?
Posted
技术标签:
【中文标题】SwiftUI 动画错误?【英文标题】:SwiftUI Animation bug? 【发布时间】:2021-07-19 20:25:46 【问题描述】:我在使用 macOS Montery 3 和 Xcode 13 Beta 3 时遇到了这个奇怪的问题,我在 List
和动画中遇到了这个错误:
[General] Row index 0 out of row range (numberOfRows: 0) for <SwiftUIListCoreOutlineView: 0x133885000>
这有点难以解释,但这里有一个简单的复制:
最小可重现示例
-
创建一个新的 SwiftUI macOS 应用程序
粘贴此代码:
struct ContentView: View
@State var items = ["Item"]
@ViewBuilder var mainView: some View
if items.isEmpty
Text("Im empty")
else
List(items, id: \.self) s in
Text(s)
var body: some View
NavigationView
mainView
.toolbar
Button(action:
withAnimation
items.removeAll()
)
Image(systemName: "minus")
Text("Second")
-
运行应用程序,然后尝试调整侧边栏的大小。 (您应该能够)
然后按工具栏上的减号按钮。这只是删除了所有项目。
然后,侧边栏的大小调整应该被打破。您可能还会在控制台中遇到一堆错误。
是否有人能够重现此问题,这是 SwiftUI 中的错误吗?
【问题讨论】:
【参考方案1】:得到了相同的行为。如果我删除“withAnimation”,代码运行良好。或者将“items.removeAll()”放在“withAnimation”之外
【讨论】:
是的。我想我会删除动画以上是关于SwiftUI 动画错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复适用于 SwiftUI 中文本的动画制作帧问题/错误?
在 SwiftUI 中将视图添加到层次结构时如何动画过渡