У меня есть фраза с пустым пространством, похожая на эту, которая загружена с сервера: «Привет, я ____, Как дела ___», и у меня есть collectionView с ячейкой, которая также имеет несколько результатов, которые загружаются с сервера, как заполнить пустую игру я хочу нажать и перетащить одну из нескольких ячеек collectionView в каждое из пустых мест и поместить значения в пробелы.
Я пишу эту функцию для обработки щелчка и перетаскивания из ячейки CollectionView в пустое пространство, но я не знаю, как поместить значение в пустые места
@objc func handleDrag(_ recognizer: UIPanGestureRecognizer) {
switch recognizer.state {
case .began:
if let view = recognizer.view {
draggedView = view
originalPosition = view.frame.origin
viewSize = view.frame.size
originalZIndex = view.layer.zPosition
view.layer.zPosition = 1
cellTextLabel = recognizer.view?.viewWithTag(textLabelTag) as? UILabel
}
case .changed:
if let view = recognizer.view {
let currentPosition = recognizer.location(in: view.superview!)
let newPosition = CGPoint(x: currentPosition.x - (viewSize!.width / 2.0), y: currentPosition.y - (viewSize!.height / 2.0))
view.frame.origin = newPosition
} else {
cellTextLabel = recognizer.view?.viewWithTag(textLabelTag) as? UILabel
self.finishDrag()
}
case .ended:
finishDrag()
cellTextLabel = recognizer.view?.viewWithTag(textLabelTag) as? UILabel
print(cellTextLabel?.text)
default:
print("drag default \(recognizer.state.rawValue)")
}
}
func finishDrag() {
self.draggedView?.frame.origin = originalPosition!
self.draggedView?.layer.zPosition = originalZIndex
originalZIndex = 0
originalPosition = nil
draggedView = nil
}
в cellForItemAtIndexPath Я помещаю тег в textLabel, чтобы узнать, какое значение пользователь нажимает и перетаскивает, затем я добавляю в ячейку жест для вызова функции handleDrag
cell.addGestureRecognizer (UIPanGestureRecognizer) (target: self, action: #selector (handleDrag (_:))))
Любая помощь?