处理ios设备方向
我有我的uiviews取决于设备方向的问题…
我遇到的主要问题是
UIDeviceOrientationFaceUp UIDeviceOrientationFaceDown
正在搞乱我的观点我只想支持肖像和风景(左),所以如果设备改变方向我的观点改变自己正确..
这是我目前实施的。 基本上它是一个从屏幕底部向上滚动的UIView,在这个视图中有几个button,用户可以select加载不同的视图。
#pragma jumpBarButtons - (void)jumpBarButtonPosition { //orientation stuff if (jumpBar.isViewLoaded) { UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; switch (orientation) { case UIDeviceOrientationPortrait: { NSLog(@"Portrait"); // Row one jumpButton1.frame = CGRectMake(18.45, 23.0, 57.0, 57.0); jumpButton2.frame = CGRectMake(93.9, 23.0, 57.0, 57.0); jumpButton3.frame = CGRectMake(169.35, 23.0, 57.0, 57.0); jumpButton4.frame = CGRectMake(244.8, 23.0, 57.0, 57.0); // Row tow jumpButton5.frame = CGRectMake(18.45, 95.0, 57.0, 57.0); jumpButton6.frame = CGRectMake(93.9, 95.0, 57.0, 57.0); jumpButton7.frame = CGRectMake(169.35, 95.0, 57.0, 57.0); jumpButton8.frame = CGRectMake(244.8, 95.0, 57.0, 57.0); // Row three jumpButton9.frame = CGRectMake(18.45, 167.0, 57.0, 57.0); jumpButton10.frame = CGRectMake(93.9, 167.0, 57.0, 57.0); jumpButton11.frame = CGRectMake(169.35, 167.0, 57.0, 57.0); jumpButton12.frame = CGRectMake(244.8, 167.0, 57.0, 57.0); // Row four jumpButton13.frame = CGRectMake(18.45, 239.0, 57.0, 57.0); jumpButton14.frame = CGRectMake(93.9, 239.0, 57.0, 57.0); jumpButton15.frame = CGRectMake(169.35, 239.0, 57.0, 57.0); jumpButton16.frame = CGRectMake(244.8, 239.0, 57.0, 57.0); } break; case UIDeviceOrientationLandscapeLeft: case UIDeviceOrientationLandscapeRight: { viewSpaceHeight = 207; viewSpaceWidth = 480; // Row one jumpButton1.frame = CGRectMake(19.7, 9.0, 57.0, 57.0); jumpButton2.frame = CGRectMake(96.42, 9.0, 57.0, 57.0); jumpButton3.frame = CGRectMake(173.13, 9.0, 57.0, 57.0); jumpButton4.frame = CGRectMake(249.84, 9.0, 57.0, 57.0); jumpButton5.frame = CGRectMake(326.55, 9.0, 57.0, 57.0); jumpButton6.frame = CGRectMake(403.26, 9.0, 57.0, 57.0); // Row tow jumpButton7.frame = CGRectMake(19.7, 75.0, 57.0, 57.0); jumpButton8.frame = CGRectMake(96.42, 75.0, 57.0, 57.0); jumpButton9.frame = CGRectMake(173.13, 75.0, 57.0, 57.0); jumpButton10.frame = CGRectMake(249.84, 75.0, 57.0, 57.0); jumpButton11.frame = CGRectMake(326.55, 75.0, 57.0, 57.0); jumpButton12.frame = CGRectMake(403.26, 75.0, 57.0, 57.0); // Row three jumpButton13.frame = CGRectMake(19.7, 141.0, 57.0, 57.0); jumpButton14.frame = CGRectMake(96.42, 141.0, 57.0, 57.0); jumpButton15.frame = CGRectMake(173.13, 141.0, 57.0, 57.0); jumpButton16.frame = CGRectMake(249.84, 141.0, 57.0, 57.0); } break; //..
这几乎是如果在肖像有16 4,4,4,4个图标,如果风景然后图标是6,6,4。 如果设备翻转面朝上或面朝下,所有这些button的意见消失会发生什么..我能做些什么来阻止这一点,任何帮助将gretly赞赏。
改用UIInterfaceDirection
。 它是UIApplication
类的一部分,它只包含下列值
typedef enum { UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft } UIInterfaceOrientation;
您可以轻松地检查您的当前方向,如下所示:
[[UIApplication sharedApplication] statusBarOrientation]