Обработка распознавателей жестов в iOS6
Очевидно, iOS 6 пытается автоматически обработать ситуацию, когда у вас есть распознаватель жестов иUIButton
в том же месте, будучи активированным для того же жеста.
Эта новая автоматическая обработка решает проблему, когда вы хотите нажать кнопку вместо активации средства распознавания жестов, ноcreates a new problem когда вы хотите, чтобы распознаватель жестов действовал.
В iOS 5 вы можете реализовать:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
передать действие наUIButton
когда в конфликте.
Это не похоже на работу в iOS 6. Кроме того, инвертирование поведения этого метода (потому что теперьUIButton
имеет приоритет вместо распознавателя жестов) не будет работать.
Полный метод:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}