J'ai écrit un dispositif de reconnaissance de gestes de pincement personnalisé pour ScrollView's
zoom de mon ScrollView's
, et je gère les touches de pincement dans une méthode dans mon controller de vue.
Mais dans certains cas, je veux que le ScrollView
se comporte exactement comme il se comporterait normalement (s'il utilisait le standard de reconnaissance de mouvement de pincement fourni avec ScrollView).
Est-il possible que dans de tels cas, je puisse transmettre mon ScrollView
reconnaissance de gestes personnalisé au ScrollView
et utiliserait ce système de reconnaissance pour resize la vue comme d'habitude?
Puis-je passer le détecteur de mouvements au sélecteur déclenché par les actions de pincement?
Je n'ai pas essayé cela, mais voici une idée:
Lorsque vous définissez votre propre gestureRecognizer, stockez pinchGestureRecognizer de pinchGestureRecognizer
dans un iVar. Vous devriez alors pouvoir échanger dynamicment votre gestureRecognizer et l'original.
Depuis iOS 5 UIScrollView expose une propriété pinchGestureRecognizer, mais elle est en lecture seule. Pour l'utiliser à la place, vous devez sous-classr UIScrollView et replace cette propriété en espérant que UIScrollView utilise également cette propriété en interne pour que le module de reconnaissance des gestes soit ajouté lorsque le zoom est activé.
Cependant, il est assez dangereux de jouer avec les reconnaisseurs de gestes de la vue déroulante, en particulier pour modifier leur comportement. Même avoir un délégué différent triggersra une exception. Procédez donc à vos risques et périls.