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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值