读书人

UIDeviceOrientation 跟 UIInterface

发布时间: 2012-06-27 14:20:09 作者: rapoo

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

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

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

?

判断设备现在的方向:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    //宣告一UIDevice指,取得目前Device的    UIDevice *device = [UIDevice currentDevice] ;         //取得前Device的方向,作判述。—evice的方向型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) 完全是一个意思。

?

?

?

?

读书人网 >移动开发

热点推荐