CGSizeMake不适用于常量

时间:2012-09-04 17:42:03

标签: objective-c

有没有办法做这种事情?

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

这是非法的,因为“Initializer元素不是编译时常量。”

当然,我可以使用单独的花车,但我想知道是否有办法做到这一点。

2 个答案:

答案 0 :(得分:46)

由于CGSize只是一个简单的C结构:

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

您可以使用初始化列表:

static const CGSize maxPageSize = {460, 651};

答案 1 :(得分:1)

CGSize

包含宽度和高度值的结构。

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

<强>字段 宽度 宽度值。 高度 高度值。

const CGSize CGSizeZero;

例如

static const CGSize pageSize = {320, 480};