通过透明视图传递触摸的更快捷方式?

时间:2012-10-05 03:39:23

标签: iphone objective-c ios xcode

我有一些对象只是PNG的UIImageViews,透明区域重叠。我在透明部分重叠的地方堆叠了几张图像。当其中一个被触摸时,我会播放一些音频。

为了让触摸通过透明区域,从而让正确的物体被识别,我通过透明层传递触摸:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    unsigned char pixel[1] = {0};
    CGContextRef context = CGBitmapContextCreate(pixel, 
                                                 1, 1, 8, 1, NULL,
                                                 kCGImageAlphaOnly);
    UIGraphicsPushContext(context);
    [self.image drawAtPoint:CGPointMake(-point.x, -point.y)];
    UIGraphicsPopContext();
    CGContextRelease(context);
    CGFloat alpha = pixel[0]/255.0;
    BOOL transparent = alpha < 0.01;
    if(transparent){
        return NO;
    } else {
        return YES;
    }

}

问题:当大约3或4个堆叠在屏幕上时,触摸会开始明显延迟。 IE浏览器。顶层立即触发,但底层需要几毫秒。

是否有更快的方式可以通过PNG的透明区域传递触摸?

由于

0 个答案:

没有答案