2010-06-27 5 views
3

Comment obtenir les coordonnées x, y d'un UIVIew personnalisé?les coordonnées x, y d'un UIVIew personnalisé

NSLog(@"landscape orientation and myUIView.x==%f and myUIView.y==%f",myUIView.position.x ,myUIView.position.y) 

J'obtiens l'erreur suivante

request for member 'position' in something not a structure or union 
+0

Notez que tout dessin est traduit au système de coordonnées approprié - si vous êtes juste en essayant de dessiner quelque chose supposons que la position est {0, 0}, c'est une mauvaise pratique d'essayer de savoir quoi que ce soit en dehors de la vue elle-même –

Répondre

14

UIView ne possède pas une propriété de position, mais il a une propriété frame (documented here) qui est un CGRect. CGRect contient l'origine (coordonnées x/y) et la taille.

NSLog(@"landscape orientation and myUIView.x==%f and myUIView.y==%f", 
    myUIView.frame.origin.x, 
    myUIView.frame.origin.y) 

Les coordonnées de la trame se trouvent dans le système de coordonnées de la vue UIV parent (vue d'ensemble).

EDIT J'ai récemment appris une autre façon d'imprimer les coordonnées:

NSLog(@"myUIView origin=%@", NSStringFromCGPoint(myUIView.frame.origin)); 

ou l'ensemble CGRect:

NSLog(@"myUIView frame=%@", NSStringFromCGRect(myUIView.frame)); 
Questions connexes