好的,场景是我有一个自定义类,它创建一个包含图像的视图并处理它自己的所有触摸事件。有时我想检查移动它是否会导致它与父视图上的另一个视图重叠。因此,在相关的触摸事件之后,我在父视图上调用一个方法,将最后一个触摸坐标传递给它并返回一个 BOOL。当应用程序保持纵向时,这可以正常工作。
问题是在旋转设备并且所有图像都为我自动旋转之后,与父视图相比,正在传递的 CGPoint 现在处于旋转坐标系中,并且被调用的 CGRectContainsPoint 方法不再正常工作。
在我的 willAnimateRotationToInterfaceOrientation 方法中,我正在调整每个自定义视图的位置以改进新方向的布局,例如
view.frame = CGRectMake((view.frame.origin.x*1.5),(view.frame.origin.y/1.5),view.frame.size.width,view.frame.size.height);
我读到调用 setBound 方法会重置坐标系:
[view setBounds:view.frame];
但这对我来说并没有什么不同。我还尝试修改“convertPoint:toView”,但它给出的值也没有多大意义。我的结论是在坐标系旋转的情况下它不起作用?