我有一个包含图像的CALayers数组,可以由用户移动,我正在尝试使用containsPoint来检测它们是否被触摸 - 代码如下:
int num_objects = [pageImages count];
lastTouch = [touch locationInView:self];
CGRect objRect;
CALayer *objLayer;
for (int i = 0; i < num_objects; i++) {
objLayer = [pageImages objectAtIndex:i];
objRect = objLayer.bounds;
NSLog(@"layerPos:%@, layerBounds:%@", NSStringFromCGPoint(objLayer.position), NSStringFromCGRect(objRect));
NSLog(@"point:%@", NSStringFromCGPoint(lastTouch));
if ([objLayer containsPoint:lastTouch] == TRUE) {
NSLog(@"touched object %d", i);
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在输出的信息将触摸放在图层的边界内(我假设位置是图层的中心,我没有改变锚点.图层没有被旋转或类似的任何东西) ,但containsPoint:不返回true.任何人都可以看到我做错了什么,或建议一种不同/更好的方式来实现我想要的东西?