gpt4 book ai didi

iphone - 允许触摸通过透明图像

转载 作者:行者123 更新时间:2023-12-01 16:58:39 24 4
gpt4 key购买 nike

我正在使用一段代码,通过UIImageView的透明部分传递触摸事件。我子类UIImageView并添加以下内容:

- (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;
}
}

到目前为止,它在我的iPad版本中运行良好。但是,在我的iPhone版本中,我将图像帧设置为图像实际大小( self.image.frame.size.width/2)的一半。该代码以一种奇怪的方式干扰了我的平移手势,如果我触摸图像的左上角,则无法访问我的平移手势,但是可以访问它的最右下角,将实际图像越过透明区域。

删除代码可使平移手势恢复正常。但是,我仍然希望保留忽略透明零件上的触摸的功能。有谁知道这段代码的哪一部分弄乱了我的接触点,或者有其他任何原因导致我的行为如此?

谢谢

最佳答案

我知道这个问题已经很老了,但是我只需要在项目中使用它,我的问题是我手动设置了imageView框架。帮助更改代码的原因是,调整大小只能通过转换来完成。

如果imageView最初与其中的图像大小相同,则可以使用此代码,它将与之后应用于imageView的任何转换一起使用。

因此,在您的iPhone版本中,您可以将imageView的框架设置为其中图像的大小,然后对其应用缩放变换,使其只有一半。

关于iphone - 允许触摸通过透明图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9348033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com