在iPhone / iPad上检测180次翻转

时间:2011-01-09 20:26:59

标签: iphone ios orientation

我在iPhone应用程序中对从纵向到横向的各种视图进行了重新调整。如果用户使用Portrait - >这可以正常工作风景 - >肖像 - >风景(因为我做一些数学确实重新定位了视图)。

但是,如果用户来自Portait - >颠倒的肖像,或左侧的风景 - >风景正确,我的代码不起作用。

我可以检测180翻转并忽略它吗?我尝试了以下方法:

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    if ((fromInterfaceOrientation == UIInterfaceOrientationPortrait) && 
        (UIDeviceOrientationIsPortrait(self.interfaceOrientation))
    {
    } 
    else if ((fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
             (fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight) && 
             (UIDeviceOrientationIsLandscape(self.interfaceOrientation)))
    {
    } 
    else 
    {
      // Do something - it didn't flip 180.
    }
}

1 个答案:

答案 0 :(得分:2)

你需要在逻辑的这一部分附近有括号:

fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight

..否则你的逻辑不会像你期望的那样出现。 &&的优先级高于||