美文网首页
屏幕旋转

屏幕旋转

作者: Hey_ebc3 | 来源:发表于2019-08-17 13:47 被阅读0次

在创建的vc中

 //指定能够支持的orientation有哪些

-(UIInterfaceOrientationMask)supportedInterfaceOrientations{

    //默认的情况下是maskAllButUpSideDown

    return UIInterfaceOrientationMaskAll;

}

//解决statusBar在翻转过程消失

-(BOOL)prefersStatusBarHidden{

    return NO;

}

//强制旋转方法一 不会改变statusbar

  self.view.transform=CGAffineTransformMakeRotation(M_PI_2);

//强制旋转方法二 设置固定值

  NSNumber* value=[NSNumber numberWithInteger:UIDeviceOrientationPortrait];

   [[UIDevice currentDevice]setValue:value forKey:@"orentation"];

设备或interface旋转的通知

//添加observer来观察通知, selector需要自己实现, name是系统封装好的通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(DeviceOrientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];

//Interface通知 UIApplicationStatusBar很形象 状态栏的方向改变

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(InterfaceOritationChanged:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

//键盘相关

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(KeybordDidShow:) name:UIKeyboardDidShowNotification object:nil];

屏幕发生旋转时改变布局

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator{

    //第一个block表示正在旋转中 第二个block就是选装结束了

    [coordinatoranimateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {

        if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))

        {//do layout}

        else{//do layout}

        }completion:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {

        NSLog(@"screen boundes %@",NSStringFromCGRect(self.view.bounds));

    }];

    //需要调用super的默认方法 要不就不向子类传递了

    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

}

//同样的事情也可以在-(void)viewDidLayoutSubviews来做

-(void)viewDidLayoutSubviews{

     if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))        {//do layout}        else{//do layout}

}

相关文章

  • iOS 屏幕旋转

    屏幕旋转 认知 期望达到的目的 如何让App支持屏幕旋转 如何让App屏幕旋转 如何保证屏幕旋转后布局不会乱 总结...

  • 屏幕旋转

    屏幕旋转 推荐文档 了解UIWindow——UIWindow实践 iOS屏幕旋转问题总结 IOS:屏幕旋转与变换 ...

  • 屏幕旋转

    UIDevice.current.setValue(UIInterfaceOrientation.landscap...

  • 屏幕旋转

    import "AppDelegate.h" import "ViewController.h" @interfa...

  • 屏幕旋转

    在做工程的时候碰到了屏幕旋转的问题,如今已经解决.为大家分享一下 屏幕旋转机制流程 (1)加速计检测到方向变化,发...

  • 屏幕旋转

    每个视图控制器都控制着自己的旋转方向,如果需要新的旋转权限需要模态出新的视图控制器(如navigation tab...

  • 屏幕旋转

    当activity设置默认属性的时候:竖屏和横屏旋转可以通过监听onConfigurationChanged来判断...

  • 屏幕旋转

    在创建的vc中 //指定能够支持的orientation有哪些 -(UIInterfaceOrientationM...

  • 屏幕旋转

    本文涉及到的转屏是咱们的app的某个页面设置横竖屏的切换 必须先在appdelegate中实现下面的方法-(UII...

  • 屏幕旋转

    第一步 在 AppDelegate.h 里增加一个属性 用来区分哪个界面可以横屏 哪个界面不可以 第二步 在 Ap...

网友评论

      本文标题:屏幕旋转

      本文链接:https://www.haomeiwen.com/subject/ivghsctx.html