您的位置:首页 > 移动开发 > IOS开发

iOS屏幕强制横屏,如右转或左转

2015-07-27 15:15 1126 查看
背景:整个工程只支持竖屏,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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  屏幕强制横屏 ios