2010-11-18 3 views
0

Je suis en train de lire le valkue actuel de X et la position Y d'un UIButton en utilisant quelque chose comme:Quel type est la position X et Y d'un UIButton dans Xcode?

button01.frame.origin.x 

si je veux le mettre dans une variable, le type de données est-il? J'ai essayé NSInteger et NSDecimal mais ils m'ont donné des erreurs ...

Répondre

2

La réponse courte est que c'est un float ou un double.

La vue frame est du type CGRect.

struct CGRect { 
    CGPoint origin; 
    CGSize size; 
}; 
typedef struct CGRect CGRect; 

La valeur origin est un CGPoint, qui contient deux valeurs CGFloat.

struct CGPoint { 
    CGFloat x; 
    CGFloat y; 
}; 
typedef struct CGPoint CGPoint; 

Et enfin, chaque composant d'un CGPoint est un CGFloat, qui est un float ou double selon que votre application est de 32 bits ou 64 bits.

typedef float CGFloat; // 32-bit 
typedef double CGFloat; // 64-bit 

Si vous devez stocker l'origine ou le cadre entier dans un objet que vous pouvez utiliser NSValue.

NSValue *originValue = [NSValue valueWithCGPoint:button01.frame.origin]; 
NSValue *frameValue = [NSValue valueWithCGRect:button01.frame]; 

Ou, pour stocker un seul composant CGFloat, vous pouvez utiliser NSNumber.

NSNumber *xValue = [NSNumber numberWithFloat:button01.frame.origin.x]; 
+0

merci pour l'explication complète! – Antonio

Questions connexes