iphone - 对 UIImageView 进行旋转后,我应该如何检查触摸点是否在 UIImageView 区域内?

标签 iphone ios ipad

我试过检查 CGRect:

 CGFloat imageX1 = imageView.frame.origin.x;
 CGFloat imageY1 = imageView.frame.origin.y;
 CGFloat imageX2 = imageView.frame.origin.x + imageView.frame.size.width;
 CGFloat imageY2 = imageView.frame.origin.y + imageView.frame.size.height;

 //NSLog(@"(%f, %f) - (%f, %f)", imageX1, imageY1, imageX2, imageY2); 
 if(imageX1 < touchedX && touchedX < imageX2 && 
     imageY1 < touchedY && touchedY < imageY2){ }

然后我知道这种类型的检查仅在 UIImageView 未旋转/缩放时有效。

我试过 CGRectApplyAffineTransform(imageView.frame, imageView.transform);,但它为转换后的 UIImageView 创建了一个最小的矩形。

假设您有一个旋转 45 度并缩放到 1.5 的 UIImageView。现在,当您触摸 UIImageView 外部的几个像素时,它仍然认为触摸点在 UIImageView Rect 内部,但事实并非如此。 UIImageView 旋转和缩放,但 CGRect 仍然是原始的。

有人知道怎么处理吗?我对图形的东西很陌生。任何事情都会有所帮助。谢谢!

最佳答案

试试这个

CGPoint touchLocation = [touch locationInView:self];
 if (CGRectContainsPoint(myImageView.frame, touchLocation))

关于iphone - 对 UIImageView 进行旋转后,我应该如何检查触摸点是否在 UIImageView 区域内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397905/

相关文章:

iphone - CFRelease 但仍然泄漏

IOS - 替换 NavController 中的初始 View

iphone - 自定义托管对象间歇性地卡在关系访问器中

iOS 向 UICollectionView 添加页脚不起作用

ios - 在通用应用程序中禁用 iPhone 分屏 View Controller 的横向

iphone - iPad 应用程序不保留其尺寸 - 恢复为 iPhone 尺寸

iphone - Nsdateformatter 以所选手机的语言返回日期。它可以一直只返回英文吗?

iphone - 适用于 VirtualBox 的 iOS

iphone - CFReadStreamHasBytesAvailable 轮询 - 最佳实践

iphone - 基本系统提供的音频单元实现