背景:整个工程只支持竖屏,webview某一页面需要横屏
代码实现:
#pragma mark 旋转屏幕
/*
*函数名:rotateScreenToRight 返回值:void
描述:屏幕强制右转
开发者: 2015/7/27
*/
- (void)rotateScreenToRight {
BOOL isStatusBarHidden = [UIApplicationsharedApplication].statusBarHidden;
[[UIApplicationsharedApplication] setStatusBarHidden:!isStatusBarHiddenwithAnimation:UIStatusBarAnimationFade];
//横屏强制转换
CGRect frame = [UIScreenmainScreen].applicationFrame;
CGPoint center = CGPointMake(frame.origin.x +ceil(frame.size.width/2), frame.origin.y +ceil(frame.size.height/2));
[[UIApplicationsharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRightanimated:YES];
CGFloat duration = [UIApplicationsharedApplication].statusBarOrientationAnimationDuration;
[UIViewbeginAnimations:nilcontext:nil];
[UIViewsetAnimationDuration:duration];
self.view.center = center;
self.view.transform =CGAffineTransformRotate(self.view.transform,M_PI/2);
if (!isStatusBarHidden) {
m_webView.frame = CGRectMake(0, 0, frame.size.height, frame.size.width);
} else {
m_webView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
}
[UIViewcommitAnimations];
}
/*
*函数名:rotateScreenToLeft 返回值:void
描述:屏幕强制左转
开发者: 2015/7/27
*/
- (void)rotateScreenToLeft {
BOOL isStatusBarHidden = [UIApplicationsharedApplication].statusBarHidden;
[[UIApplicationsharedApplication] setStatusBarHidden:!isStatusBarHiddenwithAnimation:UIStatusBarAnimationFade];
//横屏强制转换
CGRect frame = [UIScreenmainScreen].applicationFrame;
CGPoint center = CGPointMake(frame.origin.x +ceil(frame.size.width/2), frame.origin.y +ceil(frame.size.height/2));
[[UIApplicationsharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRightanimated:YES];
CGFloat duration = [UIApplicationsharedApplication].statusBarOrientationAnimationDuration;
[UIViewbeginAnimations:nilcontext:nil];
[UIViewsetAnimationDuration:duration];
self.view.center = center;
self.view.transform =CGAffineTransformRotate(self.view.transform, -M_PI/2);
if (!isStatusBarHidden) {
m_webView.frame = CGRectMake(0, 0, frame.size.height, frame.size.width);
} else {
m_webView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);
}
[UIViewcommitAnimations];
}
参考:
1.http://blog.csdn.net/starryheavens/article/details/8083644
2.http://www.cnblogs.com/mrhgw/archive/2012/07/18/2597218.html