A quanto pare iOS 6 cerca di gestire automaticamente la situazione quando si dispone di un sistema di riconoscimento gesto e un UIButton
nello stesso luogo, in corso di attivazione per lo stesso gesto.Manipolazione riconoscitori gesto iOS6
Questa nuova gestione automatica risolve il problema quando si desidera fare clic sul pulsante invece di attivare il sistema di riconoscimento gesto, ma crea un nuovo problema quando si desidera che il sistema di riconoscimento gesto di agire.
In iOS 5 è possibile implementare:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
di trasferire l'azione al UIButton
quando in un conflitto.
Questo non sembra funzionare in iOS 6. Inoltre, invertendo il comportamento di questo metodo (perché ora il UIButton
ha la priorità al posto del riconoscitore di gesti) non funzionerà.
metodo completo:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}
hai un uigesturerec ognizer su un UIView che ha una visualizzazione secondaria UIButton e vuole il sistema di riconoscimento gesto per ottenere tocchi al posto del tasto? – Ahti
sì. In realtà la sua una '' UITableView' con UIButtons' all'interno delle cellule, e voglio il sistema di riconoscimento gesto da attivare al posto dei pulsanti. – jturolla
iOS non ha fatto tutto questo fino alla sua origine? Ho sempre avuto problemi a colpire sotto un bottone. –