我正在尝试使用以下内容读取UIButton的X和Y位置的当前值:
button01.frame.origin.x
如果我想把它放在一个变量中,它的数据类型是什么?我试过NSInteger和NSDecimal,但他们给了我错误......
答案 0 :(得分:2)
简短的回答是它是float
或double
。
视图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
,这是float
或double
,具体取决于您的应用是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];