我在尝试使设备的方向正确时遇到问题。我必须根据设备的方向显示应该出现的操作表。这是我正在使用的代码。
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
switch (orientation)
{
case UIDeviceOrientationPortrait:
case UIDeviceOrientationFaceUp:
case UIDeviceOrientationFaceDown:
case UIDeviceOrientationUnknown:
case UIDeviceOrientationPortraitUpsideDown:
[self displayActionSheetInPotraitMode];
break;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
[self displayActionSheetInLandscapeMode];
break;
default:
[self displayActionSheetInPotraitMode];
break;
}
答案 0 :(得分:0)
让我们看一下UIDevice Class Reference告诉我们orientation
属性的内容。
除非通过调用beginGeneratingDeviceOrientationNotifications启用了方向通知,否则此属性的值始终返回0.
所以,你应该打电话给
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
代码中的某个地方。
另外,我想建议一种简化当前代码的方法:
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(orientation)) {
[self displayActionSheetInLandscapeMode];
} else {
[self displayActionSheetInPotraitMode];
}
答案 1 :(得分:0)
请在此处查看答案:UIActionSheet orientation
你应该添加一个UIView(将它作为子视图添加到UIWindow) - >将其转换为正确的方向,然后将UIActionSheet添加到此UIView。