Possibility Portrait mode in 1 UIView

2019-09-06 08:46发布

问题:

Is there a possibility that I can programatically say that only 1 UIView can be in landscape mode? My Whole app has to be in portrait mode (not moving at all) but 1 UIView should be able to go in Landscape mode (To show pictures even better);

回答1:

You rotate VC like this:

- (BOOL)shouldAutorotate {
     return self.topViewController.shouldAutorotate;    
}

- (NSUInteger)supportedInterfaceOrientations {
      return self.topViewController.supportedInterfaceOrientations;    
}

Restrict VC so it won't rotate:

- (BOOL)shouldAutorotate { return NO; }

- (NSUInteger)supportedInterfaceOrientations {
    return (UIInterfaceOrientationMaskPortrait); 
}

You could change condition as per your need and this answer is referred from this link so you could go there for more understanding.

Also do keep that iOS 6/7 have different method for checking.If anything else then let me know.

UPDATED:- iOS 7 callBack method for checking mode

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation: