-(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];
监听iOS检测屏幕旋转状态,不需开启屏幕旋转
最新推荐文章于 2023-10-21 22:37:44 发布