哪种类型是Xcode中UIButton的X和Y位置?

时间:2010-11-18 23:35:55

标签: xcode uibutton

我正在尝试使用以下内容读取UIButton的X和Y位置的当前值:

button01.frame.origin.x

如果我想把它放在一个变量中,它的数据类型是什么?我试过NSInteger和NSDecimal,但他们给了我错误......

1 个答案:

答案 0 :(得分:2)

简短的回答是它是floatdouble

视图frame的类型为CGRect

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

origin值为CGPoint,其中包含两个CGFloat值。

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

最后,CGPoint的每个组件都是CGFloat,这是floatdouble,具体取决于您的应用是32位还是64位位。

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

如果您需要将原点或整个帧存储在对象中,可以使用NSValue

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

或者,要存储单个CGFloat组件,您可以使用NSNumber

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