我正在对iPhone应用程序中从肖像到风景的各种视图进行一些调整。如果用户执行纵向->横向->纵向->横向(如我做一些数学操作,则会重新放置视图),则此方法效果很好。
但是,如果用户从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.
}
}
最佳答案
您需要在逻辑的这一部分加上括号:
fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight
..否则,您的逻辑将不会如您所愿。
&&
的优先级高于||
。