-2

可能重复:
iOS 6 shouldAutorotate:没有被调用

我需要一种方法来知道用户何时改变方向......

我努力了

-(BOOL) shouldAutorotate { //never called

UIInterfaceOrientation toInterfaceOrientation = [[UIDevice currentDevice] orientation];
if(toInterfaceOrientation == UIInterfaceOrientationPortrait)
    //a code here

return YES;
}

我如何知道用户何时更改 iPad 的方向?

4

2 回答 2

2

请记住在info.plist.

尝试使用

  - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration;
  - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation;

(在 iOS 6.0 中已弃用)

  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;
于 2012-12-03T15:46:30.877 回答
0

确保首先调用它:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

然后在这里跟踪方向变化:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    //your code here 
}

此处的持续时间很重要,因为这是完成方向更改所需的时间。只有在这一点上,新的方向才会完全确定

于 2012-12-03T15:50:02.537 回答