鉴于drawRect采用CGRect'rect',如何使用rect(x,y,width,height)的各个值创建4个单独的CGFloat变量?我需要单独使用变量来确定drawRect方法中的某些绘图比例。
- (void)drawRect:(CGRect)rect {
CGFLoat x = ***x value of rect***;
CGFLoat y = ***y value of rect***;
CGFloat width = ***width value of rect***;
CGFloat height = ***height value of rect***;
}
提前感谢您的帮助!
答案 0 :(得分:4)
我建议你刷一些基本的C材料,因为问题是非常基本的C结构的东西(没什么大不了的 - 我们都曾经在那里)。
假设:
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
/* Sizes. */
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
/* Rectangles. */
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
你想: - (void)drawRect:(CGRect)rect { CGFLoat x = rect.origin.x; CGFLoat y = rect.origin.y; CGFloat width = rect.size.width; CGFloat height = rect.size.height; }
或者,更好的是,因为有这种疯狂的功能:
- (void)drawRect:(CGRect)rect {
CGFLoat x = CGRectGetMinX(rect);
CGFLoat y = CGRectGetMinY(rect);
CGFloat width = CGRectGetWidth(rect);
CGFloat height = CGRectGetHeight(rect);
}
答案 1 :(得分:3)
CGFLoat x = rect.origin.x;
CGFLoat y = rect.origin.y;
CGFloat width = rect.size.width;
CGFloat height = rect.size.height;
答案 2 :(得分:0)
CGRect的结构定义为
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
这意味着你可以这样做:
rect.origin.x
rect.origin.y
rect.size.width
rect.size.height