您的位置:首页 > 移动开发 > IOS开发

监听iOS检测屏幕旋转状态,不需开启屏幕旋转

2014-02-27 14:26 162 查看
-(void)rotation_icon:(float)n {

UIButton *history_btn= [self.view viewWithTag:<#(NSInteger)#>][self.view viewWithTagName:@"home_history"];
UIButton *cam_btn = [self.view viewWithTagName:@"cam_btn"];    UIButton *cut_btn = [self.view viewWithTagName:@"cut_btn"];      UIButton *light_btn=[self.view viewWithTagName:@"light_btn"];
history_btn.transform = CGAffineTransformMakeRotation(n*M_PI/180.0);
cam_btn.transform = CGAffineTransformMakeRotation(n*M_PI/180.0);
cut_btn.transform = CGAffineTransformMakeRotation(n*M_PI/180.0);
light_btn.transform = CGAffineTransformMakeRotation(n*M_PI/180.0);
}
- (void)orientationChanged:(NSNotification *)note  {      UIDeviceOrientation o = [[UIDevice currentDevice] orientation];
switch (o) {
case UIDeviceOrientationPortrait:            // Device oriented vertically, home button on the bottom
[self  rotation_icon:0.0];
break;
case UIDeviceOrientationPortraitUpsideDown:  // Device oriented vertically, home button on the top
[self  rotation_icon:180.0];
break;
case UIDeviceOrientationLandscapeLeft:      // Device oriented horizontally, home button on the right
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];

[self  rotation_icon:90.0*3];
break;
case UIDeviceOrientationLandscapeRight:      // Device oriented horizontally, home button on the left
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];

[self  rotation_icon:90.0];
break;
default:
break;
}
}

-(void)viewWillDisappear:(BOOL)animated {

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
UIDevice *device = [UIDevice currentDevice]; //Get the device object
[nc removeObserver:self name:UIDeviceOrientationDidChangeNotification object:device];
}

- (void)viewDidAppear:(BOOL)animated {
// Do any additional setup after loading the view from its nib.
//----- SETUP DEVICE ORIENTATION CHANGE NOTIFICATION -----
UIDevice *device = [UIDevice currentDevice]; //Get the device object
[device beginGeneratingDeviceOrientationNotifications]; //Tell it to start monitoring the accelerometer for orientation
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; //Get the notification centre for the app
[nc addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification  object:device];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: