您的位置:首页 > 产品设计 > UI/UE

关于UIInterfaceOritation 和 UIDeviceOritation

2015-10-29 18:56 411 查看
原文链接: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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: