我有一些对象只是具有重叠透明区域的 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 的透明区域传递触摸?
谢谢