为什么这个CGRectContainsPoint会失败?

时间:2011-12-18 19:17:43

标签: iphone objective-c ios

我想我并不完全理解containsPoint方法:

// test
CGRect compareRect = CGRectMake(-39, -62, 39, 62);
CGPoint comparePoint = CGPointMake(3, -27);
if( CGRectContainsPoint(compareRect, comparePoint) ) NSLog(@"works");
else NSLog(@"doesn't work");

当我绘制它时,该点位于矩形内部。但它返回“不起作用。”

1 个答案:

答案 0 :(得分:6)

CGRectMake的第3和第4个参数是宽度,高度。所以compareRect是从(-39,-62)到(0,0),不包含(3,-27)。认为参数是(x1,y1,x2,y2)是一个常见的错误,但它们不是。实际上它们是(x,y,w,h)。