J'ai un UIView
à l'intérieur d'un UIScrollView
. Chaque fois que le zoom UIScrollView
change, je souhaite redessiner l'intégralité du UIView
au nouveau niveau de zoom.Redessiner UIScrollVoir le contenu après chaque zoom
Dans iOS 3.2 <, je faisais cela en redimensionnant la UIView
dans le UIScrollView
pour en faire la nouvelle taille, puis définir le Reprenez à l'identité, de sorte qu'il ne tenterait pas de redimensionner davantage. Cependant, avec iOS> = 3.2, la modification de l'identité modifie également la propriété zoomScale de UIScrollView
.
Le résultat est que chaque fois que je zoome (disons 2x), j'ajuste le UIView
intégré à la taille appropriée, et je le redessine. Cependant maintenant (depuis que j'ai réinitialisé la transformation à l'identité), le UIScrollView
pense encore une fois à ZoomScale 1, plutôt que ZoomScale 2. Donc, si mon maxZoomScale est réglé sur 2, il va encore essayer de zoomer plus loin, ce qui est faux. J'ai pensé à utiliser le CATiledLayer
, mais je ne pense pas que ce soit suffisant pour moi, puisque je veux redessiner après chaque zoom, pas seulement à certains seuils de zoom comme il essaie de le faire.
Est-ce que quelqu'un sait comment faire le redessin approprié du UIView
sur un zoom?
Merci beaucoup pour votre solution! Cela résout [ma question] (http://stackoverflow.com/questions/3970988/how-to-draw-on-a-non-transformed-context-while-zoomed-in-a-catiledlayer). Pourriez-vous laisser un lien vers votre réponse là-bas, afin que je puisse vous donner le crédit nécessaire pour y répondre? – TinkerTank
Si cette méthode est utilisée pour zoomer une CATiledLayer, le cache de tuiles doit être effacé avant d'appeler setNeedsDisplay. Une solution pour effacer le CATiledLayerCache est disponible [ici] (http: // stackoverflow.com/questions/1274680/clear-catiledlayers-cache-when-changement-images) – TinkerTank
pouvez-vous s'il vous plaît expliquer la propriété de la contentSize et comment il se passe et ce qu'il est réellement. Je vous remercie – BDGapps