Имам колекция от ленти, които могат да се плъзгат нагоре и надолу. Всяка клетка в изгледа на колекцията използва UIPanGestureRecognizer
за управление на синята лента, плъзгаща се нагоре и надолу. Изгледът на колекцията не се превърта тук.
Има "режим на редактиране", който деактивира панорамния жест, контролиращ лентите. Надеждата тук е, че в „режим на редактиране“ изгледът на колекцията може да превърта наляво и надясно.
Опитът ми да направя това беше да деактивирам панорамния жест във всяка от клетките. Опитах също да използвам методите UIGestureRecognizerDelegate
, за да се опитам да деактивирам докосванията и да проваля панорамния жест на клетката в полза на панорамния жест на изгледа на колекцията. Изглежда, че жестът за панорамиране на изгледа на колекцията не се препраща към нито едно от извикванията на делегирани жестове на клетката.
Тези извиквания на делегат ме доближиха най-близо (делегат за панорамен жест на клетката):
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
return !self.editMode // bar doesn't need to pan in edit mode
}
С това имплементирано бих могъл да панорамирам изгледа на колекцията, ако започна панорамирането в бялото пространство между клетките. Стартирането на тиган върху клетка обаче няма да направи нищо.
РЕДАКТИРАНЕ: Качих примерен проект на проблема в github.