/*
----------使用KVO强制修改设备方向达到横竖屏转变-----------
这种方法的表现是:statusBar会跟着屏幕做旋转动画。而且视图中的其他控件会转到横屏布局
注意:这个方法不是官方提供的API.随着系统版本的更迭有可能会失效
*/
//竖屏点击按钮 旋转到横屏
[[UIDevice currentDevice]setValue:[NSNumber numberWithInteger:UIDeviceOrientationPortrait] forKey:@"orientation"];//这句话是防止手动把设备置为横屏,导致下面的语句失效
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];
isPortrait = NO;
// 横屏点击按钮, 旋转到竖屏
// [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];//这句话是防止手动先把设备置为竖屏,导致下面的语句失效.
// [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationPortrait] forKey:@"orientation"];
// isPortrait= YES;
//同时还要必须支持自动旋转
- (BOOL)shouldAutorotate
{
return YES;
}
//然后就是
- (NSUInteger)supportedInterfaceOrientations
{
if ([[UIDevice currentDevice].model isEqualToString:@"iPhone"]&&isPortrait) { //如果是iPhone,且为竖屏的时候, 只支持竖屏
return UIInterfaceOrientationMaskPortrait;
}
return UIInterfaceOrientationMaskLandscape; //否者只支持横屏
}