Se si dispone di una scrollView con una sottoview e la sottoview ha un riconoscitore di pan control, il pan di scrollView sostituisce il pan della subview. Quello che voglio è il contrario, penso, così che trascino una sottoview che scorrerà nella vista di scorrimento, eppure se tocco un'altra area, la vista di scorrimento scorrerà normalmente. C'è un modo semplice per configurarlo?UIScrollView esegue l'override dei riconoscitori di panoramica pan della mia subview
5
A
risposta
12
Ecco ciò che funziona per me:
UIPanGestureRecognizer *subviewPanRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(panSubview:)];
[subview addGestureRecognizer:subviewPanRecognizer];
// play nice with subview's pan gesture
[scrollView.panGestureRecognizer
requireGestureRecognizerToFail:subviewPanRecognizer];
0
rimpiazzare queste due delegato di seguito,
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
Questo vi permetterà di riconoscere entrambi i gesti, il ritorno di default è NO, quindi dobbiamo sovrascriverlo e restituire SI.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
if ([otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
return NO;
}else{
return YES;
}
}
return YES;
}
In questo delegato si può fare nulla, come si desidera, come il suo nome l'gestureRecoginzer sarà richiesto a fallire dal otherGestureRecognizer, tutto quello che dovete fare è quello di giudicare ciò che tipo di questi due gesti e restituire SÌ o NO.
Problemi correlati
- 1. UIScrollView tocchi vs tocchi subview
- 2. Rilevamento dei tocchi nella vista panoramica all'interno di uiscrollview
- 3. Organizzare visivamente le subview in un UIScrollView di grandi dimensioni
- 4. Scorrimento orizzontale UIScrollView con gesto di panoramica verticale
- 5. DialogFragment non esegue il pan con SOFT_INPUT_ADJUST_PAN
- 6. Panoramica della stenografia PHP
- 7. tre strati di pan Gesto Recogniser Confusione
- 8. come rimuovere completamente i riconoscitori di gesti
- 9. UIScrollView all'interno di UIScrollView?
- 10. Rilevamento della posizione UIScrollView
- 11. Maven: panoramica dei valori delle proprietà Maven
- 12. Manipolazione riconoscitori gesto iOS6
- 13. Intercettazione di movimenti di panoramica su un UIScrollView interruzioni di scorrimento
- 14. Aggiunta di funzionalità a Pan Gesture Recognizer standard in un UIScrollView
- 15. Controlli WPF e Silverlight e funzionalità di panoramica e zoom
- 16. Dove trovare una panoramica dei metodi/classi di raccolta supportati
- 17. Come rendere windowSoftInputMode = "adjustPan" pan più
- 18. MKMapView Not Calling regionDidChangeAnimated on Pan
- 19. Caricamento di marker su google maps dinamicamente sulla mappa mossa/trascina/pan
- 20. Rilevamento dei gesti di scorrimento su UITableViewCell all'interno di UIScrollView
- 21. UIScrollView non sempre animare decelerazione quando si esegue l'override scrollViewWillEndDragging
- 22. Aggiunta centro subview dello schermo
- 23. È possibile disattivare i riconoscitori dei gesti del bordo della pagina di UIPageViewController? E mantenere il colpo uno?
- 24. Limite UITableView panoramica a 1 dito
- 25. panoramica diretta su tela con raphael.js
- 26. UIScrollView non scorre fino all'orientamento
- 27. Scala ordinale pan/zoom?
- 28. Pan gesture interferisce con UISlider
- 29. Sensibilità/Velocità di scorrimento di UIScrollView con cercapersone
- 30. Caricamento immagine ottimizzato in un UIScrollView
Questo sembra essere il comportamento predefinito (è ciò che sto osservando in pratica in un UIScrollView con una sottoview UIImageView). Qualcuno potrebbe confermare/infermare? – Norswap
non funziona per me –
Funziona magnificamente, specialmente quando si applica un delegato nella sottoview e si implementa 'gestureRecognizerShouldBegin:'. –