gpt4 book ai didi

ios - 为什么UIActionSheet在UIInterfaceOrientationPortraitUpsideDown中是倒着显示的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:59 24 4
gpt4 key购买 nike

我知道 UIActionSheet 在 iOS 8 中已被弃用,但我仍然需要 API,因为我仍然以 iOS 7 为目标。

这就是问题所在:我的应用同时支持手机设备的 UIInterfaceOrientationPortraitUIInterfaceOrientationPortraitUpsideDown。当我的应用程序以正常纵向显示 UIActionSheet 时,一切都很好。但是,如果设备倒置,操作表也会倒置显示,如下所示:

screenshot

仅当应用程序在装有 iOS 8 的设备(或模拟器)上运行时,问题才存在。当应用程序在装有 iOS 7.1 的模拟器上运行时,问题就消失了(我没有真正的设备iOS 7.1 进行测试)。当我的应用程序仍然使用 iOS 8 之前的 SDK 构建时,问题也从未发生过,即使该应用程序在装有 iOS 8 的设备上运行也是如此。

有没有人建议我在这里可能做错了什么?有关重现该问题的最小示例,请参见下面的代码片段。我正在使用 Xcode 6.1.1 和 iOS SDK 8.1 进行编码。我保证我没有以任何方式摆弄 Xcode 应用程序包:-)


重现问题的步骤

  1. 使用“单 View 应用程序”模板创建一个新的 Xcode 项目
  2. 选择主要目标,然后在“常规”选项卡上确保选中“颠倒”设备方向
  3. 打开主 Storyboard
  4. 为第一响应者添加一个名为doIt:的方法
  5. 向 View 添加一个新的 UIButton 并将按钮的“Touch Up Inside”事件连接到该方法

最后,在ViewController.m中添加如下代码:

- (void) doIt:(id)sender
{
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"sheet title"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet addButtonWithTitle:@"sheet action"];
[actionSheet showInView:self.view];
}

// This override is required so that interface orientation
// to UIInterfaceOrientationPortraitUpsideDown is possible
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}

运行应用程序,旋转并点击按钮,您应该明白我的意思。

最佳答案

在 ios 8 中,我认为你最好改用 UIAlertController。处理这种奇怪的情况会更好。

关于ios - 为什么UIActionSheet在UIInterfaceOrientationPortraitUpsideDown中是倒着显示的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29201897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com