iOS开发中控制屏幕旋转的编写方法小结

2020-01-14 16:25:01于海丽

}  

 

如果想又开启某个view controller的全部方向旋屏支持:

复制代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
{  
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
}  
  
-(NSUInteger)supportedInterfaceOrientations  
{  
    return UIInterfaceOrientationMaskAllButUpsideDown;  
}  
  
-(BOOL)shouldAutorotate  
{  
    return YES;  
}  

 

从而实现了对每个view controller的单独控制。

顺便提一下,如果整个应用所有view controller都不支持旋屏,那么干脆:

复制代码
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window  
{  
     return UIInterfaceOrientationMaskPortrait;  
}  
横竖屏切换,视图乱了怎么办?
首先,我们必须了解一下下列4种状态,它们被用来描述设备旋转方向:

 

iOS开发中控制屏幕旋转的编写方法小结

对于旋屏的处理,大致分为如下几种情况和思路:
也许,你不需要旋屏支持,而希望锁定屏幕

复制代码
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
{  
    return NO;  
}  
也许,你需要支持旋屏,或者支持部分方向的旋屏
复制代码
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {   
       return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
}  

 

也许,你的view有张背景图,旋屏时系统帮助你拉伸了图片,但是却没有管你的其它部件,比如button,你希望直接改变button的大小和位置