È davvero un dolore, ma sempre quando disegno una UIImage in -drawRect :, è sottosopra.Come compensare il sistema di coordinate capovolte della grafica di base per un disegno facile?
Quando capovolgo le coordinate, l'immagine si disegna correttamente, ma a costo di tutte le altre funzioni CG che disegnano "sbagliato" (capovolto).
Qual è la tua strategia quando devi disegnare immagini e altre cose? C'è qualche regola empirica su come non rimanere bloccati in questo problema più e più volte?
Inoltre, una cosa brutta quando capovolgo l'asse y è che il mio CGRect dal frame UIImageView è sbagliato. Invece dell'origine che appare a 10,10 in alto a sinistra come previsto, appare in basso.
Ma allo stesso tempo, tutte le normali funzioni di disegno di linea di CGContext assumono le coordinate corrette. disegnando una linea in -drawRect con origine 10,10 in alto a sinistra, inizierà veramente in alto a sinistra. Ma allo stesso tempo è strano, perché la core graphics ha in realtà un sistema di coordinate capovolte con y 0 in basso.
Quindi sembra che qualcosa sia davvero incoerente. Disegnare con le funzioni di CGContext prende le coordinate come "attese" (cmon, nessuno pensa in coordinate a partire da in basso a sinistra, è sciocco), mentre disegnare qualsiasi tipo di immagine funziona ancora in modo "sbagliato".
Utilizzi metodi di supporto per disegnare immagini? O c'è qualcosa di utile che rende il disegno dell'immagine non un dolore nel sedere?
Sì, giusto. Ma quando mi traduco e capovolgerla, tutte le altre funzioni di disegno in CG come disegnare linee e appaiono così via per disegnare sbagliato. Quindi hai la scelta: immagini sbagliate o percorsi sbagliati. O girando avanti e indietro tutto il tempo. – dontWatchMyProfile
Mystify: Si potrebbe dividere il codice di flip-spazio in un metodo e/o utilizzare il gstate per salvare e ripristinare il flip, ma vedere l'altra risposta che ho appena postato. –