Objective c CGRectContainsPoint无法到达边界

Objective c CGRectContainsPoint无法到达边界,objective-c,ios7,cgrect,cgrectmake,Objective C,Ios7,Cgrect,Cgrectmake,我一直在绘制CGRect和一系列瓷砖对象。然而,无论我怎么画,我都无法得到一个正方形,它可以映射4个点(宽)和3个点(高)。此外,我已经在这里彻底搜索了一整天,并在上的文档中进行了反复试验 讨论 如果矩形中的点是 坐标位于矩形内或最小X或最小Y 边缘 似乎您正在检查最大边缘点,这就是为什么在您第二次调用-CGRectContainsPoint时返回false的原因。工作了一整天后,我发现这是一个基于零的CGRect,表示0-3等于四个点。0-2也是三分。因此,点以0,0为原点,因此CGRect的

我一直在绘制CGRect和一系列瓷砖对象。然而,无论我怎么画,我都无法得到一个正方形,它可以映射4个点(宽)和3个点(高)。此外,我已经在这里彻底搜索了一整天,并在上的文档中进行了反复试验

讨论

如果矩形中的点是 坐标位于矩形内或最小X最小Y 边缘


似乎您正在检查最大边缘点,这就是为什么在您第二次调用
-CGRectContainsPoint
时返回
false的原因。工作了一整天后,我发现这是一个基于零的CGRect,表示0-3等于四个点。0-2也是三分。因此,点以0,0为原点,因此CGRect的四个点为:
0,0 - 3,0
2,0-2,3

//Test code to print all coordinates

CGRect b=CGRectMake(0, 0, 4, 3);
//top left
float topLX=CGRectGetMinX(b);
float topLY=CGRectGetMinY(b);

NSLog(@"(%f,%f)",topLX,topLY);

//top right
float topRX=CGRectGetMaxX(b);
float topRY=CGRectGetMinY(b);

NSLog(@"(%f,%f)",topRX,topRY);

//bottom left
float bottomLX=CGRectGetMinX(b);
float bottomLY=CGRectGetMaxY(b);

NSLog(@"(%f,%f)",bottomLX,bottomLY);

//bottom right
float bottomRX=CGRectGetMaxX(b);
float bottomRY=CGRectGetMaxY(b);

NSLog(@"(%f,%f)",bottomRX,bottomRY);


//Sample CGRectContainsPoint Test

CGRect d=CGRectMake(0, 0, 4, 3);
CGPoint p=CGPointMake(0, 0);
CGPoint o=CGPointMake(4, 3);

BOOL contains=CGRectContainsPoint(d, p);
BOOL contains1=CGRectContainsPoint(d, o);

if(contains) NSLog(@"yes"); else NSLog(@"no");
//This will print yes because p is inside rect b


if(contains1) NSLog(@"yes");else NSLog(@"no");
//This will print no because o is inside rect b

NSLog Output:
2014-06-16 16:08:37.291 Pirate Adventure[7564:60b] (0.000000,0.000000)
2014-06-16 16:08:37.291 Pirate Adventure[7564:60b] (4.000000,0.000000)
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] (0.000000,3.000000)
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] (4.000000,3.000000)
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] yes
2014-06-16 16:08:37.293 Pirate Adventure[7564:60b] no