SwiftUI Button作为EditButton [英] SwiftUI Button as EditButton

查看:769
本文介绍了SwiftUI Button作为EditButton的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 EditButton 之类的按钮?

还是如何使用按钮从列表中激活编辑模式?

还是如何从 EditButton edit / done更改名称?

How I can use a button like EditButton?
Or how I can use a button to active edit mode from list?
Or how I can change the name from EditButton "edit" / "done"?

推荐答案

下面的实现将 EditButton 的功能替换为 Button

The implementation below replaces EditButton's functionality with a Button:

import SwiftUI

struct ContentView: View {

    @State var isEditing = false
    @State var selection = Set<String>()

    var names = ["Karl", "Hans", "Faustao"]

    var body: some View {
        NavigationView {
            VStack {
                List(names, id: \.self, selection: $selection) { name in
                    Text(name)
                }
                .navigationBarTitle("Names")
                .environment(\.editMode, .constant(self.isEditing ? EditMode.active : EditMode.inactive)).animation(Animation.spring())
                Button(action: {
                    self.isEditing.toggle()
                }) {
                    Text(isEditing ? "Done" : "Edit")
                        .frame(width: 80, height: 40)
                }
                .background(Color.yellow)
            }
            .padding(.bottom)
        }
    }
}

#if DEBUG
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif




结果

Result

但是,通过这样做,选择处理需要由我们自己执行(这可能是问题,也可能不是问题)。

However, by doing so, selection handling needs to be implemented by our own (which may or may not be an issue).

目前,有关这一点的文档并不多:
https://developer.apple.com/documentation/swiftui/list/3367016 -init

Unfortunately there isn't much documentation around that at this point: https://developer.apple.com/documentation/swiftui/list/3367016-init

这篇关于SwiftUI Button作为EditButton的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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