iphone - 在 hittest 中的点上应用 CGAffineTransformRotate

标签 iphone objective-c ios rotation

我有一张允许用户旋转和缩放的图像。 每次用户单击图像时,我都会尝试确定该点是否透明。

如果它是透明的,我在 View 的 HitTest 中返回 null,如果它不透明,我返回 View 。当用户旋转图像时,问题就开始了。在我的 hitTest 方法中,我需要根据当前 View 的旋转来变换点。否则,该点将指示 View (和图像)上的不相关位置。

我该怎么做?

非常感谢。

最佳答案

CGAffineTransform Reference可能有帮助:

CGPointApplyAffineTransform

CGRectApplyAffineTransform

CGSizeApplyAffineTransform

但在您开始考虑需要手动执行映射之前,我建议先试一试,“就好像”当前转换是 CGAffineIdentity,并相应地编写坐标检测代码。您可能会对结果感到惊讶......

我自己的经验表明,当您从 UITouch locationIn_SomeView_ 获取点时,SomeView 的倒置矩阵会在点返回给您之前应用到该点。

因此,您可能不需要任何 CGxxxApplyAffineTransform,除非您在事件系统之外自行生成点。

关于iphone - 在 hittest 中的点上应用 CGAffineTransformRotate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863087/

相关文章:

iphone - 使用 CoreAnimation 动画滚动 UIScrollView

objective-c - 是否有一个好地方来捕获核心数据属性检索以用空字符串覆盖 nil 字符串?

ios - Objective-C中的正则表达式:如何用动态模板替换匹配项?

ios - 从不同 ViewController 中的函数捕获 var | swift

ios - UIApplicationState 在 iOS 7 的后台处于事件状态

iphone - UIView动画异常

iphone - 如何将 NSDictionary 转换为 NSMutableDictionary?

iphone - 在 Windows 中安装的 MonoDevelop 中无法看到 iPhone

iphone - 哪个网站最适合 IOS、Cocoa、Objective-C 的 wiki?

objective-c - 如何更改按钮上的背景图像,iOS?