我有一张允许用户旋转和缩放的图像。 每次用户单击图像时,我都会尝试确定该点是否透明。
如果它是透明的,我在 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/