为什么UIInterfaceOrientation总是返回到右边?
当我完成旋转时,总是在右边结束,为什么?
PS:我只是想横向
这是代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
switch (interfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"Is Left");
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Is Right");
default: ;
}
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
switch (fromInterfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"From Left");
case UIInterfaceOrientationLandscapeRight:
NSLog(@"From Right");
default: ;
}
}
这是LOG
2012-08-23 17:45:28.074 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.126 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.131 Simulador 360[323:707] Is Left
2012-08-23 17:45:28.132 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.138 Simulador 360[323:707] Is Left
2012-08-23 17:45:28.140 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.160 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.167 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.977 Simulador 360[323:707] From Left
2012-08-23 17:45:31.980 Simulador 360[323:707] From Right
2012-08-23 17:45:35.684 Simulador 360[323:707] Is Left
2012-08-23 17:45:35.687 Simulador 360[323:707] Is Right
2012-08-23 17:45:35.691 Simulador 360[323:707] Is Left
2012-08-23 17:45:35.693 Simulador 360[323:707] Is Right
2012-08-23 17:45:36.502 Simulador 360[323:707] From Right
答案 0 :(得分:0)
您的break
语句中缺少switch
个。在不调用break
的情况下,执行将继续执行到下一种情况,因此如果您的情况是接口方向评估为Left,则将执行左侧和右侧大小写块。
通过在每个案例的末尾插入break
来解决此问题:
switch (interfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"Is Left");
break;
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Is Right");
break;
default: ;
}