【iOS】屏幕旋转,屏幕自适应方向变化

1. iOS有四个方向的旋转,为了保证自己的代码能够支持旋转,我们必须首先处理一个函数:

Objective-c代码  

  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  2. return YES;
  3. }

2. 这个函数时用来确定我们的应用所支持的旋转方向。如果想要支持每个方向则直接返回YES就行,还可以单独判断某一方向:

Objective-c代码  

  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  2. if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft) {
  3. //left
  4. }
  5. if (interfaceOrientation==UIInterfaceOrientationLandscapeRight) {
  6. //right
  7. }
  8. if (interfaceOrientation==UIInterfaceOrientationPortrait) {
  9. //up
  10. }
  11. if (interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) {
  12. //down
  13. }
  14. return YES;
  15. }

3. 当然旋转还有一些函数可触发:

Objective-c代码  

  1. //旋转方向发生改变时
  2. -(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  3. }
  4. //视图旋转动画前一半发生之前自动调用
  5. -(void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  6. }
  7. //视图旋转动画后一半发生之前自动调用
  8. -(void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration {
  9. }
  10. //视图旋转之前自动调用
  11. -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  12. }
  13. //视图旋转完成之后自动调用
  14. -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
  15. }
  16. //视图旋转动画前一半发生之后自动调用
  17. -(void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
  18. }
时间: 2024-10-06 20:17:58

【iOS】屏幕旋转,屏幕自适应方向变化的相关文章

关于屏幕旋转的一些心得

横屏注意事项: 1.首先,由于苹果公司的限制,我不太推荐强制横屏.因为你搞不过一个公司,所以说你想在某些界面横屏,你的应用就必须要去同时支持横屏.竖屏(你可以在应用的General中设置). 2.你需要去解决状态栏的问题,不能你的界面转过来了,状态栏还是竖屏的样式吧.那么你就需要在Info.plist中设置View controller-based status bar appearanceiew属性为YES(或者不设置),这样你就可以在每个ViewController中设置状态栏显示/隐藏.白

iOS屏幕旋转方向的相关方法

在iOS应用开发过程中,经常会遇到设置屏幕方向,或者根据屏幕方向改变界面的时候,所以现在就来说一下屏幕方向的那些事情. 关于方向,经常会遇到以下的两个对象: 1.UIDeviceOrientation(机器设备的方向) ================================== UIDeviceOrientationUnknown //未知方向 UIDeviceOrientationPortrait, //设备直立,home按钮在下 UIDeviceOrientationPortrai

iOS学习笔记(3)— 屏幕旋转

iOS学习笔记(3)— 屏幕旋转 一.屏幕旋转机制: iOS通过加速计判断当前的设备方向和屏幕旋转.当加速计检测到方向变化的时候,屏幕旋转的流程如下: 1.设备旋转时,系统接收到旋转事件. 2.系统将旋转事件通过AppDelegate通知当前的主Window. 3.window通知它的rootViewController. 4.rootViewController判断所支持的旋转方向,完成旋转. iOS系统中屏幕旋转事件没有像触碰事件那样进行hitTest,所以只有rootViewControl

iOS屏幕旋转总结

一.屏幕旋转检测方法 在特别的场景下,需要针对屏幕旋转作特殊处理.在ios系统下实现相关的功能还是比较方便的. 我下面介绍两种方法: 1.监测状态栏方向 1 /** 2 * 当手机屏幕发生左右横屏变化时,我们需根据此时的设备方向做出相应的调整 3 * 例如,在ViewController中,我们需要监控手机屏幕是否转动了,需要在通知中心中注册通知 4 */ 5 - (void)viewWillAppear:(BOOL)animated{ 6 [super viewWillAppear:anima

iOS实现屏幕旋转

iOS实现屏幕旋转有两种方式 1. 应用本身支持 2. 手动旋转UIView (这种方式我没找到旋转 系统控件的方法 如:键盘.导航.UIAlertView) 如果你只是要把竖屏的播放器,做成支持横屏的,没有其他界面操作, 就可以考虑用第二种方式去做,比较简单 ,不过要注意计算view Frame 这两种方式看你具体的使用场景了,具体场景选择合适的方式. 公司项目中有几个界面要支持横竖屏,(直播录制界面.直播观看界面.视频回看界面). 刚开始我想着用第二种方式去解决,但是我们视频录制.观看界面有

ios(ipad,iphone)屏幕旋转检测通用方法

在特别的场景下,需要针对屏幕旋转作特殊处理.在ios系统下实现相关的功能还是比较方便的. 我下面介绍两种方法: 1.注册UIApplicationDidChangeStatusBarOrientationNotification通知(举例:在一个viewcontroller类的viewdidload中注册该通知),示例代码如下: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarO

ios开发过程中屏幕方向判断的问题

判断屏幕的方法有很多着及仅提供几个我个人认为好用的方案 Landscape 竖屏 Portrait 横屏 最有效的方法是: 在willRotateToInterfaceOrientation:duration: 方法中将方向存储起来: DrviceOrientation = toInterfaceOrientation; 然后在别的方法中使用相应的屏幕的方向 方法一: 直接获取设备的方法:self.interfaceOrientation(此方法已经过期) 方法二: 通过下面的方法: UIDev

IOS UIDevice & IOS检测屏幕旋转实例

一 UIDevice 简介 UIDevice类提供了一个单例实例代表当前的设备.从这个实例中可以获得的信息设备,比如操作系统名称.电池电量值(batteryLevel).电池状态(batteryState).设备的类型(model,比如iPod.iPhone等).设备的系统(systemVersion) 二 获取 UIDevice 实例 通过[UIDevice currentDevice]可以获取这个单粒对象 UIDevice *device = [UIDevice currentDevice]

ios实现屏幕旋转的方法

1.屏蔽AppDelegate下面的屏幕旋转方法 #pragma mark - 屏幕旋转的 //- (UIInterfaceOrientationMask)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window //{ // return UIInterfaceOrientationMaskPortrait; //} 2.对UINavigationContr