I have a CGRect
; posso trasferire le sue coordinate per essere nel sistema di coordinate utente, cioè, nell'angolo in basso a sinistra in alto invece che nell'angolo in alto a sinistra in basso. C'è qualche metodo predefinito per questo o ho bisogno di calcolarlo manualmente? Grazie in anticipo.Modifica del valore CGrect nel sistema di coordinate utente
risposta
Per convertire un rettangolo da un sistema di coordinate che ha la sua origine in basso a sinistra (chiamiamolo semplicemente sistema di coordinate tradizionale per dargli un nome) in un sistema in cui l'origine è in alto a sinistra (sistema di coordinate iPhone) è necessario conoscere la dimensione della vista in cui è CGRect
, poiché la vista è il riferimento per il rettangolo.
Ad esempio, supponiamo di avere una visualizzazione con dimensioni 200 x 300 e il numero CGRect
di cui disponi è CGRectMake(10, 20, 30, 40)
. Le dimensioni di CGRect
rimarranno le stesse. Tutto ciò che cambierà è l'origine - in realtà, solo la coordinata y cambierà e non la coordinata x, perché i sistemi di coordinate tradizionali e iPhone iniziano entrambi sul lato sinistro (uno in basso a sinistra, l'altro in alto a sinistra).
Quindi avremo qualcosa come CGRectMake(10, y, 30, 40)
.
- (CGRect)rectangle:(CGRect)oldRect fromTraditionalToiPhoneCoordinatesWithReferenceViewOfSize:(CGSize)aSize
{
CGFloat oldY = oldRect.origin.y; // This is the old y measured from the bottom left.
CGFloat newY = aSize.height - oldY - oldRect.size.height;
CGRect newRect = oldRect;
newRect.origin.y = newY;
return newRect;
}
Il nuovo rettangolo, come misurato da un iPhone (in alto a sinistra) sistema di coordinate, sarebbe: CGRectMake(10, 300 - 20 - 40, 30, 40) = CGRectMake(10, 240, 30, 40)
.
Speriamo che questa immagine lo rende più chiara
+1 Grazie mille per la risposta è davvero buona ... – ajay
- 1. Modifica griglia sistema di coordinate
- 2. Come convertire il sistema di coordinate frame di SubView nel sistema di coordinate Self View
- 3. Sistema di coordinate n-sfera a sistema di coordinate cartesiane
- 4. Perché il sistema di coordinate del dispositivo normalizzato è mancino?
- 5. flip svg coordinate sistema
- 6. Qual è l'unità del sistema di coordinate della tela? - android
- 7. Come ruotare il sistema di coordinate?
- 8. Modifica del valore di un attributo nel widget DetailView
- 9. Modifica impostazioni di sistema (proxy) di sistema
- 10. modifica del valore di ko.observable
- 11. NSKeyedArchiver/NSuserDefaults - salvataggio di CGRect
- 12. Normalizzazione CGRect tra 0 e 1
- 13. utente valore versionName di AndroidManifest.xml nel codice
- 14. Sistema di coordinate della core core
- 15. Modifica del numero di telefono del sistema linux
- 16. Modifica lingua di sistema C#
- 17. Confronto di due CGRect
- 18. Impossibile capire la trasformazione del sistema di coordinate della core grafica iOS, ho bisogno di assistenza
- 19. JavaFX 2.x: Converti coordinate di clic del mouse nel valore dell'asse XYChart
- 20. Perché il software utilizza spesso un sistema di coordinate inverse rispetto al normale sistema di coordinate matematiche?
- 21. Modifica del valore di un NSNumber
- 22. Come sovrascrivere la visualizzazione del valore del campo nel modulo di modifica dell'amministratore di Django
- 23. Convertire un punto di origine di UIView nel suo sistema di coordinate di finestra
- 24. PowerShell: modifica del valore di una variabile di ambiente
- 25. Come si capovolge il sistema di coordinate di un NSView?
- 26. modifica del valore del riferimento di rvalue - Come funziona?
- 27. Sistema di riferimento di coordinate non riconosciuto in gvNIX
- 28. NSDictionary non memorizza correttamente CGRect?
- 29. Longitudine, latitudine, altitudine a 3D-Sistema di coordinate cartesiane
- 30. Come posso ottenere il sistema di coordinate cartesiane in matplotlib?
La risposta dipende dal vostro uso di quel convertito CGRect. Cosa intendi fare con il rettangolo convertito? – Anurag
Ho un valore di rettangolo di linea nel sistema di coordinate di default (utente) ora voglio le coordinate nel sistema di coordinate di utilizzo di iPhone. – ajay
Quindi hai un rettangolo in un sistema di coordinate in cui l'origine è in basso a sinistra e vuoi convertirlo nel sistema di coordinate iOS? Puoi pubblicare un esempio di un rettangolo che hai nel sistema di coordinate predefinito? – Anurag