Je viens de commencer la programmation de dessin iOS et j'ai découvert que le système de coordonnées est différent de Mac OS X, fondamentalement le point de départ sur iOS est en haut à gauche au lieu de Mac. Je me demande simplement si quelqu'un sait pourquoi Apple a fait ce changement, et cela changera-t-il aussi le futur pour Mac? J'ai également vu sur les docs que le système de coordonnées sur iOS ne peut pas être retourné, donc j'ai besoin de réécrire le code?système de coordonnées ios view
Répondre
Vous avez raison concernant le système de coordonnées. La raison, si je me souviens bien, est que les systèmes de dessin de la plupart des plates-formes utilisent l'angle supérieur gauche comme origine des coordonnées. Mac OS X utilisé en bas à gauche car c'est ce que NeXT a utilisé.
Il ne changera probablement pas sur le Mac à l'avenir, car alors tout le monde devrait réécrire totalement leur code de dessin.
Il était difficile de s'adapter en changeant de windows en mac ... et maintenant je dois y retourner! (criant furieusement) –
J'ai trouvé un moyen facile de résoudre ce problème. Au lieu d'utiliser un objet standard CALayer comme couche de base, créez votre propre classe (basé sur CALayer) qui a un seul appel:
- (void)layoutSublayers;
{
for(sprite* aSprite in self.sublayers)
{
// -(y pos -1) flips the coordinate system to start in the lower left
aSprite.position = CGPointMake(aSprite.actualPosition.x, -(aSprite.actualPosition.y - 1.0));
}
}
sprite
est juste une classe CALayer avec une propriété CGPoint ajouté, ActualPosition. Mettez à jour cette valeur pour déplacer l'image-objet.
'-layoutSublayers' est appelé très fréquemment. Sûrement, la deuxième fois que vous l'appelez, vous retournez la position y de chaque couche à la position d'origine à nouveau? –
Oups, j'ai fait une erreur en copiant le code. Je prenais d'autres parties de ces lignes car elles n'étaient pas pertinentes à la question. Je devine un peu d'avance sur moi-même. Actualisé. – charliehorse55
- 1. Comment définir QGraphicsScene/View à un système de coordonnées spécifique
- 2. PDFBox - Système de coordonnées
- 3. MKOverlayView Système de coordonnées
- 4. Système de coordonnées CALayer
- 5. iOS CATransform3D Coordonnées
- 6. QGridLayout coordonnées système
- 7. iPhone, système de coordonnées cocos2d
- 8. Système de coordonnées pour CIFaceFeature
- 9. Système de coordonnées cartésiennes VB.NET
- 10. Convertir les coordonnées de la carte en système de coordonnées
- 11. Origine du système de coordonnées SpriteKit
- 12. iOS Persist view transformer
- 13. iOS Custom View Controller
- 14. iOS Invisible Spacer View?
- 15. iOS Timelime View
- 16. Storyboard view IOS
- 17. iOS - Crashing Custom View
- 18. iOS « View Controller »
- 19. Animation avec View iOS
- 20. Système de coordonnées des fractales de flamme
- 21. iOS: La meilleure façon de stocker Coordonnées et coordonnées GPS
- 22. système de coordonnées d'éclairage par fragment
- 23. conversion en système de coordonnées barycentrique
- 24. Utilisation du système de coordonnées dans Matlab
- 25. Système de coordonnées (PHP un tableau)
- 26. Image Conception du système de coordonnées
- 27. Création de VIEW au niveau du système
- 28. Emplacements de conversion entre le système de coordonnées géographiques privé et WGS84 dans iOS
- 29. iOS est-il possible de convertir CLLocation en un système de coordonnées métriques XYZ?
- 30. iOS - Conversion de point d'un système de coordonnées à un autre
Oui, vous devez ajuster votre code. – PengOne