有什么方法可以删除 .onDelete SwiftUI 上的淡入淡出动画 [英] Is there any way to remove the fading animation on .onDelete SwiftUI

查看:46
本文介绍了有什么方法可以删除 .onDelete SwiftUI 上的淡入淡出动画的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码如下.我想在点击 onDelete 时删除最终的淡入淡出动画.

The code is below. I want to delete the final fading animation when onDelete is tapped.

struct ContentView: View {
    @State var names = ["david", "john", "amber"]
    
    var body: some View {
        List {
            ForEach(names, id: \.self) { (item) in
                Text(item)
            }.onDelete(perform: self.deleteItem)
        }
    }
    
    private func deleteItem(at indexSet: IndexSet) {
        self.names.remove(atOffsets: indexSet)
    }
}

我尝试使用 .animation() 但没有效果

I tried to use .animation() but none works

推荐答案

一个可能的解决方案是强制重绘List:

A possible solution is to force redraw the List:

struct ContentView: View {
    @State private var names = ["david", "john", "amber"]
    @State private var listId = UUID()

    var body: some View {
        List {
            ForEach(names, id: \.self) { item in
                Text(item)
            }
            .onDelete(perform: deleteItem)
        }
        .id(listId)
    }

    private func deleteItem(at indexSet: IndexSet) {
        names.remove(atOffsets: indexSet)
        listId = UUID()
    }
}

这篇关于有什么方法可以删除 .onDelete SwiftUI 上的淡入淡出动画的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆