Какой тип X и Y позиции UIButton в XCode? - PullRequest
0 голосов
/ 19 ноября 2010

Я пытаюсь прочитать текущее значение X и Y позиции кнопки UIB, используя что-то вроде:

button01.frame.origin.x

если я хочу поместить его в переменную, какой это тип данных? Я пробовал NSInteger и NSDecimal, но они дали мне ошибки ...

1 Ответ

2 голосов
/ 19 ноября 2010

Короткий ответ: 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...