我在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.
}
}
答案 0 :(得分:2)
你需要在逻辑的这一部分附近有括号:
fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight
..否则你的逻辑不会像你期望的那样出现。 &&
的优先级高于||
。