SwiftUI ScrollView - возможно ли «переупорядочить» / «переместить» элементы в ScrollView, как можно в списке? - PullRequest
0 голосов
/ 18 апреля 2020

Можно ли «переупорядочить» / «переместить» элементы в ScrollView, как можно в списке? У меня есть игровая площадка ниже, которая компилируется / запускается нормально, однако onDelete / onMove действительно визуализирует любые кнопки удаления или строки гамбургера для перетаскивания / перемещения?

Есть ли способ заставить мой код работать здесь, чтобы хотя бы " на ходу "концепция работает?

Примечание - я отмечаю, что и List, и ScrollView (я думаю) поддерживают протокол DynamicViewContent, поэтому предполагалось, что он должен работать (?)

Изображение после выполнения кода:

enter image description here

Код (игровые площадки)

import SwiftUI
import PlaygroundSupport

let modelData: [String] = ["Eggs", "Milk", "Bread"]

struct ListTestNoDelete: View {
    private func move(from uiStartIndexSet: IndexSet, to uiDestIndex: Int) {
        print("On Move")
    }
    private func delete(at offsets : IndexSet) {
        print("On Delete")
    }
    var body: some View {
        NavigationView {
            VStack {
                ScrollView {
                    ForEach(modelData, id: \.self) { str in
                        HStack {
                            Image(systemName: "square")
                            Text(str)
                            Spacer()
                        }.padding(.horizontal, 3)
                    }
                    .onMove(perform: self.move)
                    .onDelete(perform: self.delete)
                }
                .environment(\.editMode, .constant(.active))
                .navigationBarTitle( Text("Test") )
            }
        }
    }
}


let listTest = ListTestNoDelete()
PlaygroundPage.current.liveView = UIHostingController(rootView: listTest)
...