IOS屏幕旋转详解手机开发

//在iOS5.1 和 之前的版本中, 我们通常利用 shouldAutorotateToInterfaceOrientation:  
//来单独控制某个UIViewController的旋屏方向支持 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation); 
} 
  
//但是在iOS6中,这个方法被废弃了,取而代之的是这俩个组合: 
- (BOOL)shouldAutorotate 
{ 
   return YES; 
} 
   
- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskLandscape; 
} 
  
//设置View Controller被Presented时的首选显示方向。 
//当view controller被presented显示时,可能在一个特定的方向显示最合适,如果其仅仅支持这一个方向 
//可以在supportedInterfaceOrientations方法中简单的返回此方向,但如果view controller支持多个方向显示 
//但在某一个方向显示最佳,则可以通过重写preferredInterfaceOrientationForPresentation方法来返回此方向 
//这样,当view controller被presented时,将会以preferredInterfaceOrientationForPresentation返回的方向显示。 
//注意:preferredInterfaceOrientationForPresentation返回的方向是supportedInterfaceOrientations中的一个。 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return UIInterfaceOrientationLandscapeRight; 
} 
  
//如果整个应用所有view controller都不支持旋屏 
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window   
{   
     return UIInterfaceOrientationMaskPortrait;   
} 
  
//获取到“当前interfaceOrientation 
//具体区别,可参见StackOverflow的问答: 
//http://stackoverflow.com/questions/7968451/different-ways-of-getting-current-interface-orientation 
controller.interfaceOrientation,获取特定controller的方向 
[[UIApplication sharedApplication] statusBarOrientation] 获取状态条相关的方向 
[[UIDevice currentDevice] orientation] 获取当前设备的方向

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5140.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论