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

来源:互联网 发布:c语言编译预处理 编辑:程序博客网 时间:2024/06/05 04:43

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) 完全是一个意思。

原文地址:http://justcoding.iteye.com/blog/1472932