ios SDK - 仅选择最顶层视图

时间:2013-11-06 17:02:04

标签: ios iphone objective-c uiview

我有几个视图(例如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是最顶视图)。

如何解决这个问题?

0 个答案:

没有答案