Versuchen collectionView(_ collectionView: UICollectionView, targetIndexPathForMoveFromItemAt originalIndexPath: IndexPath, toProposedIndexPath proposedIndexPath: IndexPath) -> IndexPath
Siehe Apple-Dokumentation mit: https://developer.apple.com/documentation/uikit/uicollectionviewdelegate/1618052-collectionview
Während der interaktiven Bewegungs eines Elements, ruft die Sammlung Ansicht diese Methode, um festzustellen, ob Sie ein zur Verfügung stellen möchten unterschiedlicher Indexpfad als der vorgeschlagene Pfad. Sie können diese Methode verwenden, um zu verhindern, dass der Benutzer das Element an einem ungültigen Speicherort ablegt. Sie könnten beispielsweise verhindern, dass der Benutzer das Element in einem bestimmten Abschnitt löscht.
So zum Beispiel, wenn Sie eine Zelle Neuordnen mit der letzten Zelle verhindern wollten könnten Sie tun:
func collectionView(_ collectionView: UICollectionView, targetIndexPathForMoveFromItemAt originalIndexPath: IndexPath, toProposedIndexPath proposedIndexPath: IndexPath) -> IndexPath {
if proposedIndexPath.row == data.count {
return IndexPath(row: proposedIndexPath.row - 1, section: proposedIndexPath.section)
} else {
return proposedIndexPath
}
}
Wir werden mehr Kontext benötigen, um Ihnen zu helfen. Können Sie ein Schema oder eine XIB-Datei angeben, die das Layout darstellt, das Sie in Bezug auf die Zellen erreichen möchten? Haben sie (die, die sich nicht bewegen) eine bestimmte Position? – Balanced