gpt4 book ai didi

iphone - willAnimateRotationToInterfaceOrientation 在各种设备上是否被调用

转载 作者:行者123 更新时间:2023-11-28 19:06:56 27 4
gpt4 key购买 nike

我对(我想)方向回调有疑问。我的应用程序以横向模式运行,但有两种模式可用(左/右)。在 View Controller 中我有三种方法

- (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 with iOS6)。我可能会假设方法 willAnimateRotationToInterfaceOrientation: 没有被调用,但我对行为的起源有点困惑(对于具有类似系统的其他设备也是如此)。你见过类似的问题吗?

最佳答案

从 iOS6 开始,willAnimateRotationToInterfaceOrientation: 方法不再为不可见的 View Controller 调用。因此,如果您的 View Controller 呈现另一个接管,则只有另一个会听到这些通知。

最好将界面方向逻辑移动到viewWillLayoutSubviewsviewDidLayoutSubviews中,查询[[UIApplication sharedApplication] statusBarOrientation]属性。

关于iphone - willAnimateRotationToInterfaceOrientation 在各种设备上是否被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com