关于UIInterfaceOritation 和 UIDeviceOritation

来源:互联网 发布:php文件管理系统 编辑:程序博客网 时间:2024/06/04 00:24

原文链接:http://blog.163.com/hongbin89@126/blog/static/112853955201331432531787/

1、UIDeviceOrientation是设备的方向,只能读取不能设置,支持6个方向,

typedef NS_ENUM(NSInteger, UIDeviceOrientation) {

    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

};



UIInterfaceOrientation是软件的方向,可以读取可以设置。

typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {

    UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,

    UIInterfaceOrientationPortraitUpsideDown= UIDeviceOrientationPortraitUpsideDown,

    UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,

    UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft

};


注意:UIInterfaceOrientation的横屏的左边和右边跟UIDeviceOrientation刚好相反。

2、如果需要获取设备方向变化(UIDeviceOrientation)的消息的话,需要注册UIDeviceOrientationDidChangeNotification通知。

在注册通知时,需要先调用UIDevice的beginGeneratingDeviceOrientationNotifications方法

 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

[notificationCenter addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil];

同时,在结束时,需要移除改通知消息

[notificationCenter removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];


0 0
原创粉丝点击