I am adding this solution to show what happens to the frame and snapping.
I added these three methods:
- (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; CGRect bounds = [view bounds]; NSLog(@"FRAME: %@", NSStringFromCGRect(view.frame)); NSLog(@"BOUNDS: %@", NSStringFromCGRect(bounds)); } - (void)deviceOrientationDidChange:(NSNotification*)notification { UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; if (orientation == AVCaptureVideoOrientationLandscapeLeft) NSLog(@"1. Orientation: Landscape Left"); else if (orientation == AVCaptureVideoOrientationLandscapeRight) NSLog(@"1. Orientation: Landscape Right"); NSLog(@"1. FRAME: %@", NSStringFromCGRect(self.view.frame)); NSLog(@"1. BOUNDS: %@", NSStringFromCGRect(self.view.bounds)); } - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; if (orientation == AVCaptureVideoOrientationLandscapeLeft) NSLog(@"2. Orientation: Landscape Left"); else if (orientation == AVCaptureVideoOrientationLandscapeRight) NSLog(@"2. Orientation: Landscape Right"); NSLog(@"2. FRAME: %@", NSStringFromCGRect(self.view.frame)); NSLog(@"2. BOUNDS: %@", NSStringFromCGRect(self.view.bounds)); } - (void)viewDidLayoutSubviews { UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; if (orientation == AVCaptureVideoOrientationLandscapeLeft) NSLog(@"3. Orientation: Landscape Left"); else if (orientation == AVCaptureVideoOrientationLandscapeRight) NSLog(@"3. Orientation: Landscape Right"); NSLog(@"3. FRAME: %@", NSStringFromCGRect(self.view.frame)); NSLog(@"3. BOUNDS: %@", NSStringFromCGRect(self.view.bounds)); }
And here is what I get:
FRAME: {{0, 0}, {320, 568}} BOUNDS: {{0, 0}, {320, 568}} 3. Orientation: Landscape Right 3. FRAME: {{0, 0}, {320, 568}} 3. BOUNDS: {{0, 0}, {568, 320}} 1. Orientation: Landscape Right 1. FRAME: {{0, 0}, {320, 568}} 1. BOUNDS: {{0, 0}, {568, 320}} 1. Orientation: Landscape Right 1. FRAME: {{0, 0}, {320, 568}} 1. BOUNDS: {{0, 0}, {568, 320}}
Related changes to viewDidLayoutSubviews:
Vansfannel
source share