我需要知道方向从纵向切换到横向,反之亦然。
如果我选择收听UIDeviceOrientationDidChangeNotification
我会面朝上,面朝下等,但我只需要在界面轮换时运行代码。
我可以http://the.ichibod.com/kiji/how-to-handle-device-rotation-for-uiviews-in-ios/
- (void)deviceOrientationDidChange:(NSNotification *)notification {
//Obtaining the current device orientation
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
//Ignoring specific orientations
if (orientation == UIDeviceOrientationFaceUp || orientation == UIDeviceOrientationFaceDown || orientation == UIDeviceOrientationUnknown || currentOrientation == orientation) {
return;
}
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(relayoutLayers) object:nil];
//Responding only to changes in landscape or portrait
currentOrientation = orientation;
}
最好的方法是什么?
答案 0 :(得分:2)
在使用设备方向时,我遇到了类似的问题。它有向上,向下,向左和向右但也是未知的,另一个我还没弄清楚它是什么意思(enum上的int 5,0是Unknown)。无论如何,我最终采取的是检测状态栏方向。对于用户所看到的内容,这仍然更加一致。
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
希望这有帮助。