iOS--使用KVO强制修改设备方向达到横竖屏转变

/*

----------使用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; //否者只支持横屏

}

你可能感兴趣的:(iOS--使用KVO强制修改设备方向达到横竖屏转变)