我有几个视图(例如1,2,3具有不同的zPosition),其中蒙版图像彼此重叠(请参阅附件)。 任何此视图都有轻敲手势识别器, 我做了这个,以便点击手势只适用于点击点不透明的视图。
我是这样做的,在.m档案中
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
if (!CGRectContainsPoint(self.bounds, point))
{
return NO;
}
unsigned char pixel[1] = {0};
CGContextRef context = CGBitmapContextCreate(pixel,1, 1, 8, 1, NULL,
(CGBitmapInfo)kCGImageAlphaOnly);
UIGraphicsPushContext(context);
[self.pieceImageView.image drawAtPoint:CGPointMake(-point.x, -point.y)];
UIGraphicsPopContext();
CGContextRelease(context);
CGFloat alpha = pixel[0]/255.0f;
BOOL transparent = alpha < 0.01f;
return !transparent;
}
它有效。
现在的事情就是当我点击那些视图的交叉位置时,点击手势处理视图2而不是视图3(视图3下的视图2,视图2下的视图1 =&gt;视图3是最顶视图)。
如何解决这个问题?