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

背景:整个工程只支持竖屏,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

猜你喜欢

转载自blog.csdn.net/heymacn/article/details/47085497