J'ai un graphe tracé à l' intérieur d' un UIScrollView. Il est une grande UIViewaide d' une sous - classe personnalisée de CATiledLayercomme sa couche.
Quand je zoom dans et hors de la UIScrollView, je veux le graphique pour redimensionner dynamiquement comme il le fait quand je retourne le graphique à partir viewForZoomingInScrollView. Cependant, le graphique se redessine au nouveau niveau de zoom, et je veux réinitialiser l'échelle transform 1x1 afin que la prochaine fois que l'utilisateur effectue un zoom avant, la transformée commence à partir de la vue actuelle. Si je réinitialiser la transformation à l' identité en scrollViewDidEndZooming, cela fonctionne dans le simulateur, mais jette un EXC_BAD_ACCSESsur l'appareil.
Cela ne résout même pas le problème entièrement sur le simulateur soit, parce que la prochaine fois que l'utilisateur effectue un zoom avant, la transformée se remet à zéro à tout niveau de zoom, il était, et il ressemble tellement, si je zoomé à 2x, par exemple, il est soudainement à 4x. Quand je termine le zoom, il finit à la bonne échelle, mais l'acte même de zooming est mauvais.
Alors d'abord: comment puis-je permettre le graphique de se redessiner à l'échelle standard de 1x1 après le zoom, et comment puis-je avoir un zoom lisse tout au long?
Edit: De nouveaux résultats L'erreur semble être « [CALayer retainCount]: message sent to deallocated instance»
Je ne suis jamais moi-même désaffecter toutes les couches. Avant, je ne même supprimer des vues ou quoi que ce soit. Cette erreur était jeté sur le zoom et sur rotate. Si je supprime l'objet avant la rotation et l'ajouter à nouveau par la suite, il ne jette pas l'exception. Ce n'est pas une option pour le zoom.













