I have a simple app in SwiftUI that shows a List
, and each item is a VStack
with two Text
elements:
var body: some View {
List(elements) { item in
NavigationLink(destination: DetailView(item: item)) {
VStack(alignment: .leading) {
Text(item.name)
Text(self.distanceString(for: item.distance))
}
}
}
.animation(.default)
}
The .animate()
is in there because I want to animate changes to the list when the elements
array changes. Unfortunately, SwiftUI also animates any changes to content, leading to weird behaviour. For example, the second Text
in each item updates quite frequently, and an update will now shortly show the label truncated (with ...
at the end) before updating to the new content.
So how can I prevent this weird behaviour when I update the list's content, but keep animations when the elements in the list change?
In case it's relevant, I'm creating a watchOS app.