CGSizeMake не работает для констант

Есть ли способ сделать это?

static const CGSize maxPageSize = CGSizeMake(460, 651);

Это незаконно, потому что "Элемент Initializer не является константой времени компиляции".

Я мог бы использовать отдельные поплавки, конечно, но мне интересно, есть ли способ сделать это.

Ответы

Ответ 1

Так как CGSize - это просто C-struct:

struct CGSize {
  CGFloat width;
  CGFloat height;
};
typedef struct CGSize CGSize;

Вы можете использовать список инициализаторов:

static const CGSize maxPageSize = {460, 651};

Ответ 2

CGSize

Структура, которая содержит значения ширины и высоты.

struct CGSize {
   CGFloat width;
   CGFloat height;
};
typedef struct CGSize CGSize;

Поля ширина Значение ширины. высота Значение высоты.

const CGSize CGSizeZero;

e.g

static const CGSize pageSize = {320, 480};