IT虾米网

IOS屏幕旋转详解

luoye 2018年06月24日 手机开发 340 0
//在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] 获取当前设备的方向

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

ios 时间类转化为字符串详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。