У моего подкласса UICollectionViewCell есть булиево свойство editingMode. Нужно оно для того, чтобы помимо прочего в этом "режиме" не срабатывало событие didSelectItemAtIndexPath для делегата UICollectionView. Я переопределяю touchesEnded для этого подкласса следующим образом:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if (!_editingMode) {
[super touchesEnded:touches withEvent:event];
}
else {
// My custom behavior
}
}
Пока я не включаю editingMode, все идет нормально, и вызов touchesEnded для super приводит к ожидаемому результату: didSelectItemAtIndexPath вызывается.
Затем я произвожу следующие действия:
1. Выставляю editingMode = YES.
2. Нажимаю на ячейку.
3. Обратно выставляю editingMode = NO.
4. Вновь нажимаю на ячейку.
После этих действий, несмотря на то, что touch-события перехватываются и touchesEnded для super вызывается, didSelectItemAtIndexPath уже не отрабатывает.
Забавно, что точно такой же код для подкласса UITableViewCell работает, как ожидается.
Как вы думаете, в чем может быть проблема?