Ho un grafico in fase di elaborazione all'interno di una UIScrollView. E 'una grande UIViewutilizzando una sottoclasse personalizzata di CATiledLayercome il suo livello.
Quando io lo zoom in e fuori del UIScrollView, voglio il grafico di ridimensionare in modo dinamico, come invece accade quando torno il grafico da viewForZoomingInScrollView. Tuttavia, il grafico si ridisegna al nuovo livello di zoom, e voglio ripristinare la scala trasformazione per 1x1 in modo che la prossima volta che l'utente ingrandisce, il trasformare inizia dalla vista corrente. Se a reimpostare la trasformazione di identità in scrollViewDidEndZooming, funziona nel simulatore, ma genera EXC_BAD_ACCSESsul dispositivo.
Questo non ha nemmeno risolve il problema del tutto sul simulatore sia, perché la prossima volta che l'utente ingrandisce, la trasformata di reset per sé a qualsiasi livello di zoom è stato a, e così sembra che, se mi è stato zoomato a 2x, per esempio, è improvvisamente a 4x. Quando ho finito lo zoom, finisce alla scala corretta, ma il vero e proprio atto di zoom sembra male.
Quindi prima: come faccio a permettere il grafico per ridisegnare se stessa alla tabella standard di 1x1 dopo lo zoom, e come posso avere uno zoom liscia per tutto?
Edit: Nuove scoperte L'errore sembra essere [CALayer retainCount]: message sent to deallocated instance
Non sono mai deallocando eventuali strati me stesso. Prima, non ero nemmeno l'eliminazione di eventuali pareri o nulla. Questo errore è stato stato gettato su zoom e anche sulla Ruota. Se elimino l'oggetto prima della rotazione e ri-aggiungerlo dopo, non gettare l'eccezione. Questa non è un'opzione per lo zoom.













