UIDeviceOrientation 和&nbsp…

来源:互联网 发布:数控车t型螺纹编程实例 编辑:程序博客网 时间:2024/05/18 03:18

UIDeviceOrientation     是机器硬件的当前旋转方向  这个你只能取值 不能设置

UIInterfaceOrientation   是你程序界面的当前旋转方向  这个可以设置

 

判断设备现在的方向:

  1. (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  2.  
  3.     //宣告一個UIDevice指標,並取得目前Device的狀況  
  4.     UIDevice *device [UIDevice currentDevice]   
  5.       
  6.     //取得當前Device的方向,來當作判斷敘述。(Device的方向型態為Integer)  
  7.     switch (device.orientation)  
  8.         case UIDeviceOrientationFaceUp:  
  9.         NSLog(@"螢幕朝上平躺");  
  10.             break 
  11.               
  12.         case UIDeviceOrientationFaceDown:  
  13.         NSLog(@"螢幕朝下平躺");  
  14.             break 
  15.               
  16.         //系統無法判斷目前Device的方向,有可能是斜置   
  17.         case UIDeviceOrientationUnknown:  
  18.         NSLog(@"未知方向");  
  19.             break 
  20.               
  21.         case UIDeviceOrientationLandscapeLeft:  
  22.         NSLog(@"螢幕向左橫置");  
  23.             break 
  24.               
  25.         case UIDeviceOrientationLandscapeRight:  
  26.         NSLog(@"螢幕向右橫置");  
  27.             break 
  28.               
  29.         case UIDeviceOrientationPortrait:  
  30.         NSLog(@"螢幕直立");  
  31.             break 
  32.               
  33.         case UIDeviceOrientationPortraitUpsideDown:  
  34.         NSLog(@"螢幕直立,上下顛倒");  
  35.             break 
  36.               
  37.         default 
  38.         NSLog(@"無法辨識");  
  39.             break 
  40.      
  41.   
  42.     // Return YES for supported orientations  
  43.     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); // 只支持向左横向, YES 表示支持所有方向  
  44.  
 

或者

  1. (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  2.  
  3.     UIDeviceOrientation deviceOrientation [UIDevice currentDevice].orientation;  
  4.     if (UIDeviceOrientationIsLandscape(deviceOrientation)) NSLog(@"横向");      
  5.     else if(UIDeviceOrientationIsPortrait(deviceOrientation)) NSLog(@"纵向");  
  6.       
  7.     // // Return YES for supported orientations  
  8.     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); // 只支持向左横向, YES 表示支持所有方向  
  9.  

 

Portrait 表示 纵向,Landscape 表示横向。

 

  1. typedef enum  
  2.     UIDeviceOrientationUnknown,  
  3.     UIDeviceOrientationPortrait,            // Device oriented vertically, home button on the bottom  
  4.     UIDeviceOrientationPortraitUpsideDown,  // Device oriented vertically, home button on the top  
  5.     UIDeviceOrientationLandscapeLeft,       // Device oriented horizontally, home button on the right  
  6.     UIDeviceOrientationLandscapeRight,      // Device oriented horizontally, home button on the left  
  7.     UIDeviceOrientationFaceUp,              // Device oriented flat, face up  
  8.     UIDeviceOrientationFaceDown             // Device oriented flat, face down  
  9. UIDeviceOrientation; 
  1. typedef enum  
  2.     UIInterfaceOrientationPortrait           UIDeviceOrientationPortrait,  
  3.     UIInterfaceOrientationPortraitUpsideDown UIDeviceOrientationPortraitUpsideDown,  
  4.     UIInterfaceOrientationLandscapeLeft      UIDeviceOrientationLandscapeRight,  
  5.     UIInterfaceOrientationLandscapeRight     UIDeviceOrientationLandscapeLeft  
  6. UIInterfaceOrientation;  
  

  1. #define UIDeviceOrientationIsPortrait(orientation)  ((orientation) == UIDeviceOrientationPortrait || (orientation) == UIDeviceOrientationPortraitUpsideDown)  
  2. #define UIDeviceOrientationIsLandscape(orientation) ((orientation) == UIDeviceOrientationLandscapeLeft || (orientation) == UIDeviceOrientationLandscapeRight)  
 

上面是重要的源代码,已经解释的非常清楚。UIDeviceOrientationIsPortrait(orientation)跟  ((orientation) ==UIDeviceOrientationPortrait || (orientation) ==UIDeviceOrientationPortraitUpsideDown) 完全是一个意思。

本文转自:justcoding.iteye.com/blog/1472932

0 0
原创粉丝点击