Ik heb een grafiek in een getrokken UIScrollView. Het is een groot UIViewgebruik van een aangepaste subklasse van CATiledLayerals zijn laag.
Toen ik in en uit het zoomen UIScrollView, wil ik de grafiek om het formaat dynamisch zoals het hoort als ik de grafiek van terug te keren viewForZoomingInScrollView. Echter, de grafiek tekent zich op het nieuwe zoomniveau, en ik wil het resetten van de te transformeren schaal 1x1, zodat de volgende keer dat de gebruiker inzoomt, het begint te transformeren van de huidige weergave. Als ik reset het transformeren naar identiteit in scrollViewDidEndZooming, het werkt in de simulator, maar genereert een EXC_BAD_ACCSESop het apparaat.
Dit heeft niet eens het probleem opgelost volledig op de simulator ook niet, want de volgende keer dat de gebruiker inzoomt, de transformatie reset zelf aan wat zoomniveau het was op, en dus het lijkt erop dat, als ik werd ingezoomd tot 2x, bijvoorbeeld, het is plotseling op 4x. Als ik klaar ben met de zoom, het eindigt op de juiste schaal, maar de feitelijke handeling van zoomen ziet er slecht uit.
Dus eerst: hoe sta ik de grafiek om zichzelf opnieuw te tekenen bij de standaard schaal van 1x1 na zoomen, en hoe kan ik een gladde zoom overal?
Edit: Nieuwe bevindingen De fout lijkt te zijn [CALayer retainCount]: message sent to deallocated instance
Ik ben nooit deallocating elke lagen mezelf. Voor, ik was niet eens met weglating van alle standpunten of wat dan ook. Deze fout werd gegooid op Zoom en ook op draaien. daarna als ik het object voor rotatie en verwijderen re-toe te voegen, is het niet de uitzondering gooien. Dit is geen optie voor zoomen.













