修复了方向更新的延迟

时间:2009-12-15 02:02:10

标签: iphone cocoa-touch

我们有一个iPhone应用程序,它在纵向和横向之间进行大量旋转。一切都工作正常,但它似乎没有足够快地获取方向变化(有时根本没有)。有没有办法告诉我们需要更新的默认轮换处理?我宁愿不编写自定义加速度计代码,但我知道加速度计可以指定接收更新的速度。

1 个答案:

答案 0 :(得分:1)

不确定如何收到有关您的方向更改的通知,但我正在使用 - (void)orientationChanged:(NSNotification *)通知。这至少在模拟器中的更新速度超过了两倍,这对我来说足够快。

是啊,我遇到了问题。在苹果或他们的doco(我不记得)的示例应用程序中,它使用:

  • (void)orientationChanged :( NSNotification *)通知 { [self performSelector:@selector(updateLandscapeView)withObject:nil afterDelay:0]; }

比你构建一个

的方法
  • (void)updateLandscapeView { if(UIDeviceOrientationIsLandscape(deviceOrientation)&&!isShowingLandscapeView) {     [self presentModalViewController:scheduleMonth animated:YES];     isShowingLandscapeView = YES; } else if(deviceOrientation == UIDeviceOrientationPortrait&& isShowingLandscapeView) {     [self dismissModalViewControllerAnimated:YES];     isShowingLandscapeView = NO; } }

我将横向定位在一个单独的类中,该类在updateLandscapeView

中调用

如果你有一个复杂的风景视图,你可以从一个线程加载它,如果它回到肖像停止线程并关闭视图。用户可能无法快速查看横向视图,但意味着他们不会出现故障或被困在横向或纵向视图上。