开发者

How to temporarily lock iPad/iPhone orientation

At a certain point in my application, I would like to temporarily disable the rotation feature - effectively "lock" the orientation in code, similar to what the lock toggle switch does on the iPad in hardware.

I'm currently doing:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]

and when I'm through, I c开发者_运维问答all:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]

While this all appears to work, the API documentation indicates there should always be a begin followed by an end - and I'm doing it essentially in reverse. Is there a more appropriate API for handling the "lock orientation"?


I think it's as simple as not responding to the orientation changes from your controller. You can conditionally return true or false depending on the parameters you are passed, you don't always have to return true.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (rand()%2 == 0) { // evaluate if I should allow rotate
      return YES;
    } else {
      return NO;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜