iOS 中横竖屏切换的功能,在开发iOS app中总能遇到。以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰到了,在此总结一下,分享给小伙伴。
//方法1.注册屏幕旋转的通知(手机锁屏按钮需要关闭,注意页面dealloc后删除通知)
-(void)registScreen{
if([UIDevicecurrentDevice].orientation ==UIDeviceOrientationPortrait) {
[[UIApplicationsharedApplication]setStatusBarOrientation:UIInterfaceOrientationPortrait];
[selforientationChange:[UIDevicecurrentDevice].orientation];
} elseif ([UIDevicecurrentDevice].orientation ==UIDeviceOrientationLandscapeLeft || [UIDevicecurrentDevice].orientation ==UIDeviceOrientationLandscapeRight) {
[[UIApplicationsharedApplication]setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
[selforientationChange:[UIDevicecurrentDevice].orientation];
}
}
- (void)orientationChange:(int)direction
{
//拿到屏幕旋转的方向,对当前的view做适应的旋转操作
}
//方法2.获取当前window直接旋转window
-(void)viewWillAppear:(BOOL)animated{
[superviewWillAppear: animated];
//window的旋转
UIWindow *appWindow = [UIApplicationsharedApplication].keyWindow;
appWindow.transform =CGAffineTransformMakeRotation(M_PI*1.5);
appWindow.bounds =CGRectMake(0,0,kScreenHeight,kScreenWidth);
}
-(void)viewWillDisappear:(BOOL)animated{
[superviewWillDisappear:animated];
//window的恢复
UIWindow *appWindow = [UIApplicationsharedApplication].keyWindow;
appWindow.transform =CGAffineTransformIdentity;
appWindow.bounds =CGRectMake(0,0,kScreenWidth,kScreenHeight);
}
更多查看:http://www.cocoachina.com/ios/20160722/17148.html