J'ai un UIScrollView avec l'exigence que, lors d'un zoom, la contentSize.height doit rester la même. Un zoom de 200x100 devrait aboutir à un nouveau contentSize de 400x100 au lieu de 400x200, par exemple. J'aimerais faire mon propre dessin pendant que l'utilisateur effectue un zoom.zoom sur mesure pour mettre en œuvre un UIScrollView
Je ne pense pas que je peux utiliser le comportement de zooming normal de UIScrollView pour y parvenir, donc je suis en train de rouler mon propre. (Je pourrais juste le laisser faire son truc et ensuite redessiner mon contenu quand -scrollViewDidEndZooming: withView: atScale: est appelé, mais ce ne serait pas très joli).
Actuellement, je suis le sous-classement UIScrollView et essayer de faire mon propre lorsque deux doigts zooming sont à l'écran:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[super touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
Je pensais que par des raisons impérieuses touchesBegan: withEvent :, touchesMoved: withEvent :, touchesEnded: withEvent: et touchCancelled: withEvent: de cette façon devrait fonctionner, mais ce n'est pas le cas.
Une tentative ayant échoué était de placer une vue transparente sur le dessus du scrollview et envoyer des touches que je ne suis pas intéressé par la scrollview:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[self.theScrollView touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
Toute aide serait appréciée.
Merci, Thomas
OK, merci, je vais essayer d'intercepter setTransform: et redessiner la vue à la fin du zoom pincement. Je pourrais essayer de redessiner complètement mon point de vue et voir à quoi ressemble la performance. Je ne serai pas capable de le faire aujourd'hui, mais je vous dirai comment je vais. –
J'ai fait un test rapide, intercepté setTransform:, et essayé de redessiner mes vues de contenu à chaque fois. Vous avez raison, ce n'est pas une option sur l'appareil pour des raisons de performances. Je vais aller avec votre approche recommandée de laisser zoom UIScrollView, puis redessiné dans -scrollViewDidEndZooming: avecView: atScale :. Merci. –