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

文章转自:http://moto0421.iteye.com/blog/1586791


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

Objective-c代码   收藏代码
  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {  
  2.   
  3.     return YES;  
  4. }  
 

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

Objective-c代码   收藏代码
  1. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {  
  2.   
  3.     if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft) {  
  4.   
  5.         //left  
  6.   
  7.     }  
  8.   
  9.     if (interfaceOrientation==UIInterfaceOrientationLandscapeRight) {  
  10.   
  11.         //right  
  12.   
  13.     }  
  14.   
  15.     if (interfaceOrientation==UIInterfaceOrientationPortrait) {  
  16.   
  17.         //up  
  18.   
  19.     }  
  20.   
  21.     if (interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) {  
  22.   
  23.         //down  
  24.   
  25.     }  
  26.   
  27.     return YES;  
  28. }  

 

3.IOS6之后又不太一样

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAllButUpsideDown ;
	//支持旋转的方向
}
- (BOOL)shouldAutorotate{ return YES;
	//是否旋转
}

 UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait),
    UIInterfaceOrientationMaskLandscapeLeft = (1 << UIInterfaceOrientationLandscapeLeft),
    UIInterfaceOrientationMaskLandscapeRight = (1 << UIInterfaceOrientationLandscapeRight),
    UIInterfaceOrientationMaskPortraitUpsideDown = (1 << UIInterfaceOrientationPortraitUpsideDown),
    UIInterfaceOrientationMaskLandscape = (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
    UIInterfaceOrientationMaskAll = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown),
    UIInterfaceOrientationMaskAllButUpsideDown = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),

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

//旋转方向发生改变时  
  
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {  
}  
//视图旋转动画前一半发生之前自动调用  
  
-(void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {  
}  
//视图旋转动画后一半发生之前自动调用  
  
-(void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration {  
}  
//视图旋转之前自动调用  
  
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {  
}  
//视图旋转完成之后自动调用  
  
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {  
}  
//视图旋转动画前一半发生之后自动调用  
  
-(void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {  
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值