首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

UIDeviceOrientation 跟 UIInterfaceOrientation 设备旋转的用法 (实例)

2012-06-27 
UIDeviceOrientation 和UIInterfaceOrientation 设备旋转的用法 (实例)UIDeviceOrientation ? ? ?是机器硬

UIDeviceOrientation 和 UIInterfaceOrientation 设备旋转的用法 (实例)

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

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

?

判断设备现在的方向:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    //宣告一個UIDevice指標,並取得目前Device的狀況    UIDevice *device = [UIDevice currentDevice] ;         //取得當前Device的方向,來當作判斷敘述。(Device的方向型態為Integer)    switch (device.orientation) {        case UIDeviceOrientationFaceUp:    NSLog(@"螢幕朝上平躺");            break;                    case UIDeviceOrientationFaceDown:    NSLog(@"螢幕朝下平躺");            break;                    //系統無法判斷目前Device的方向,有可能是斜置         case UIDeviceOrientationUnknown:    NSLog(@"未知方向");            break;                    case UIDeviceOrientationLandscapeLeft:    NSLog(@"螢幕向左橫置");            break;                    case UIDeviceOrientationLandscapeRight:    NSLog(@"螢幕向右橫置");            break;                    case UIDeviceOrientationPortrait:    NSLog(@"螢幕直立");            break;                    case UIDeviceOrientationPortraitUpsideDown:    NSLog(@"螢幕直立,上下顛倒");            break;                    default:    NSLog(@"無法辨識");            break;    }    // Return YES for supported orientations    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); // 只支持向左横向, YES 表示支持所有方向}
?

或者

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;    if (UIDeviceOrientationIsLandscape(deviceOrientation)) NSLog(@"横向");        else if(UIDeviceOrientationIsPortrait(deviceOrientation)) NSLog(@"纵向");        // // Return YES for supported orientations    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); // 只支持向左横向, YES 表示支持所有方向}

?

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

?

typedef enum {    UIDeviceOrientationUnknown,    UIDeviceOrientationPortrait,            // Device oriented vertically, home button on the bottom    UIDeviceOrientationPortraitUpsideDown,  // Device oriented vertically, home button on the top    UIDeviceOrientationLandscapeLeft,       // Device oriented horizontally, home button on the right    UIDeviceOrientationLandscapeRight,      // Device oriented horizontally, home button on the left    UIDeviceOrientationFaceUp,              // Device oriented flat, face up    UIDeviceOrientationFaceDown             // Device oriented flat, face down} UIDeviceOrientation;
?
typedef enum {    UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,    UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,    UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,    UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft} UIInterfaceOrientation;
??
#define UIDeviceOrientationIsPortrait(orientation)  ((orientation) == UIDeviceOrientationPortrait || (orientation) == UIDeviceOrientationPortraitUpsideDown)#define UIDeviceOrientationIsLandscape(orientation) ((orientation) == UIDeviceOrientationLandscapeLeft || (orientation) == UIDeviceOrientationLandscapeRight)
?

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

?

?

?

?

热点排行