чтобы реализовать функцию «1023» в моем приложении, я обертываю функцию из uiKit, и она прекрасно работает.
Теперь моя проблема в том, что я реализую эту функцию для обновления sh кнопка редактирования списка больше не работает. Я больше не могу перетащить, чтобы переместить элемент списка, и я не могу изменить, чтобы удалить, я могу только провести пальцем, чтобы удалить.
У меня есть вызов списка ListMainView
здесь код
struct ListMainView: View {
@ObservedObject var dm: DataManager
var body: some View {
ZStack(alignment: .leading) {
List{
ForEach(self.dm.storage){ item in
Text(item.airportData.aptICAO)
}
.onDelete(perform: delete)
.onMove(perform: move)
}
}
}
func move(from source : IndexSet, to destination: Int){
dm.storage.move(fromOffsets: source, toOffset: destination)
}
func delete(at offset: IndexSet) {
dm.storage.remove(atOffsets: offset)
}
}
Теперь я передаю это представление, чтобы создать CustomScrollView для переноса из UIkit функции вытягивания для обновления sh:
struct CustomScrollView : UIViewRepresentable {
@ObservedObject var dm: DataManager
let general: GenAirportModel
@Binding var isDiplayTheButtonINLIST : Bool
var width : CGFloat, height : CGFloat
func makeCoordinator() -> Coordinator {
Coordinator(self, model: dm)
}
func makeUIView(context: Context) -> UIScrollView {
let control = UIScrollView()
control.refreshControl = UIRefreshControl()
control.refreshControl?.addTarget(context.coordinator, action:
#selector(Coordinator.handleRefreshControl),
for: .valueChanged)
let childView = UIHostingController(rootView: ListMainView(dm: self.dm, general: self.general, isDiplayTheButtonINLIST: $isDiplayTheButtonINLIST))
childView.view.frame = CGRect(x: 0, y: 0, width: width, height: height)
control.addSubview(childView.view)
return control
}
func updateUIView(_ uiView: UIScrollView, context: Context) {}
class Coordinator: NSObject {
var control: CustomScrollView
var dm : DataManager
init(_ control: CustomScrollView, model: DataManager) {
self.control = control
self.dm = model
}
@objc func handleRefreshControl(sender: UIRefreshControl) {
debugPrint("START REFRESH")
dm.refreshall()
sender.endRefreshing()
}
}
}
Теперь, если я использую свой ListMainView - функция редактирования, перемещение, работа в режиме delate, работают отлично ... если я использую CustomScrollView, если я нажимаю кнопку Edit, отмечая работу ... Я имею в виду, что я не могу переместить свой элемент в списке.
Я прикрепляю изображение то, что я хотел бы случиться, даже используя мой CustomScrollView.
я что-то пропускаю, когда оборачиваю свой взгляд из UIkit?