ios 横竖屏通知

mac2022-06-30  20

屏幕切换时,会发送一个通知。只要注册一个通知:  

 

 

[java]  view plain copy   [[NSNotificationCenter defaultCenter] addObserver:self                                            selector:@selector(doRotateAction:)                                                name:UIDeviceOrientationDidChangeNotification                                              object:nil];  

然后在方法里做操作:

 

[java]  view plain copy   -(void) doRotateAction:(NSNotification *) notification{      if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait           || [[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown) {           NSLog(@">>>portrait");       }else{           NSLog(@">>>landscape");       }  }  

 

如果要在入口文件做切换屏幕,可以判断状态栏的方向:

 

[java]  view plain copy     //通知委托状态栏已改变,进横竖屏操作  -(void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation{      //清除背景,防止上一次转屏的图像残留      [imageview setBackgroundColor:[UIColor clearColor]];      //以下是横竖屏4个方向的切换,注意转屏时,无论是转哪个屏。起点坐标都是在portrait方向的起点(0,0)来计算的      if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait ) {           NSLog(@">>>portrait"); //home键在下          imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 768, 44)];          imageview.backgroundColor = [UIColor redColor];          [_window addSubview:imageview];      }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown){          NSLog(@">>>PortraitUpsideDown"); //home键在上          imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 960, 768, 44)];          imageview.backgroundColor = [UIColor redColor];          [_window addSubview:imageview];      }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeLeft){          NSLog(@">>>LandscapeLeft"); //home键在左          imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20, 0, 44, 1024)];          imageview.backgroundColor = [UIColor redColor];          [_window addSubview:imageview];      }      else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeRight){           NSLog(@">>>LandscapeRight"); //home键在右          imageview = [[UIImageView alloc] initWithFrame:CGRectMake(704, 0, 44, 1024)];          imageview.backgroundColor = [UIColor redColor];          [_window addSubview:imageview];      }    }  

转载于:https://www.cnblogs.com/piaojin/p/5083004.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)