我对(我想)方向回调有疑问。我的应用程序以横向模式运行,但有两种模式可用(左/右)。在视图控制器中,我有三种方法
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskLandscapeRight);
}
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
// some setup
}
然后我从回调中获取触摸并将它们转换为我的坐标系。
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//...
CGPoint p=[[touches anyObject] locationInView:nil];
// some transforms
}
在所有情况下,这在我所有的测试设备(iPhone 3GS - iOS6 和 iPad2 iOS7)上都可以正常工作。但是,在 App Store 发布后,我有两个报告说屏幕旋转后,触摸无法正常工作(iPad 4 和 iPod 4 与 iOS6)。我可能会假设该方法 willAnimateRotationToInterfaceOrientation: 没有被调用,但我对行为的起源有点困惑(适用于具有类似系统的其他设备)。你见过类似的问题吗?