iOS 关于横屏
iOS 关于横屏
山里来的 发表于5个月前
iOS 关于横屏
  • 发表于 5个月前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

1,旋转手机跟随转动

- (BOOL)shouldAutorotate
{
     return NO; //yes旋转 no不旋转
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    
    return UIInterfaceOrientationMaskPortrait; //支持的方.点进去可以看到是个枚举值,有肖像模式,左横屏,右横屏,上下颠倒,所有方向等等
}

坑来了,你会发现shouldAutorotate方法不调用。 如果只有ViewController的话,shouldAutorotate,一定会走的,但是关键是我们项目都是navigationController,shouldAutorotate方法就不会走了.属于方法被navigationController拦截了.这样就需要在你的navigationController基类添加以下代码:

-(BOOL)shouldAutorotate{
    return self.topViewController.shouldAutorotate;
}

可能还是不会调用,因为我们项目用了tabbarController。所以在你的tabbarController的基类里边添加如下代码:

- (BOOL)shouldAutorotate{
    return self.selectedViewController.shouldAutorotate;
}

这样就可以了。

2,把当前的view旋转90°或者180° 监听屏幕旋转

[UIView animateWithDuration:0.25 animations:^{
                self.view.transform = CGAffineTransformMakeRotation(0);
                self.view.frame = CGRectMake(0, 0, kIPHONE_WIDTH, kIPHONE_HEIGHT);
            }];

这是个掩耳盗铃的方法,只是旋转了view。部分情况也可以这样简单处理

3,单独定义一个全局变量来管理是否允许横屏。(适合横屏比较多的项目)

4,强行设置屏幕方向(简单粗暴,)

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];  
    [[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 
共有 人打赏支持
粉丝 9
博文 80
码字总数 16486
×
山里来的
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: