Как разрешить изменение порядка строк в списке SwiftUI вист НЕ в режиме редактирования? - PullRequest
1 голос
/ 08 ноября 2019

Есть ли возможность разрешить изменение порядка строк в списке SwiftUI вист НЕ в режиме редактирования?

То есть, чтобы дать ряду правый значок меню гамбургера, который они могут использовать, чтобы изменить порядок строк? (как это возможно в режиме редактирования)

1 Ответ

1 голос
/ 08 ноября 2019

Если я правильно понял ваш вопрос, вот как это можно сделать:

import SwiftUI

struct TestEditModeCustomRelocate: View {
    @State private var objects = ["1", "2", "3"]
    @State var editMode: EditMode = .active

    var body: some View {
        List {
            ForEach(objects, id: \.self) { object in
                Text("Row \(object)")
            }
            .onMove(perform: relocate)
        }
        .environment(\.editMode, $editMode)
    }

    func relocate(from source: IndexSet, to destination: Int) {
        objects.move(fromOffsets: source, toOffset: destination)
    }
}

struct TestEditModeCustomRelocate_Previews: PreviewProvider {
    static var previews: some View {
        TestEditModeCustomRelocate()
    }
}
...