CGImageRef e livelli di disegno
-
06-07-2019 - |
Domanda
Ho questo codice:
CGDataProviderRef provider = CGDataProviderCreateWithFilename([myFile UTF8String]);
CGImageRef img = CGImageCreateWithJPEGDataProvider(provider, NULL, true, kCGRenderingIntentDefault);
Successivamente carico quel CGImageRef in un UIImage in questo modo:
UIImage *uiImage = [[UIImage alloc] initWithCGImage:destImage];
Vorrei tracciare un cerchio sull'immagine. Il punto è che il cerchio si sposta, quindi deve essere eliminato e ridisegnato. Immagino che il modo migliore per ottenere questo risultato sia con i livelli, quindi la mia domanda è: come posso aggiungere un livello a quel codice e tracciarne un cerchio? Come posso successivamente ripristinare il livello e ridisegnare quel cerchio?
Grazie!
Soluzione
Ti consigliamo di utilizzare UIImageView, quindi aggiungere un livello separato a quella vista. Se il livello [cerchio] si sposta, basta impostare la proprietà position sul nuovo centro; il sistema di visualizzazione si occuperà di ricomporre tutto.
Per far apparire la tua cerchia nel layer, puoi usare un'immagine fissa, sottoclassare CALayer e sovrascrivere drawInContext: oppure impostare il delegato e implementare drawLayer: inContext :.