为什么我的 UIActionSheet 在设备底部突然截断 (iOS 8)?

Why my UIActionSheet suddenly cutoff at the bottom of the device (iOS 8)?

我有一些非常标准的 UIActionSheet 代码,在生产中运行良好。

-(void) showGameMenu
{
    UIActionSheet * const activeSheet = [[UIActionSheet alloc] initWithTitle:@"Game"
                                                                delegate:self
                                                       cancelButtonTitle:@"Cancel"
                                                  destructiveButtonTitle:nil
                                                       otherButtonTitles:@"New Game", @"Save Game", @"Load Game", @"Email Game", @"Share Position", @"Setup Position", nil];
    [activeSheet setTag:Framework::GameMenuButton];
    [self showActionSheetOnToolbar:activeSheet];
}

-(void) showActionSheetOnToolbar:(UIActionSheet *)sheet
{
    [sheet showFromBarButtonItem:_gameItem animated:YES];
}

_gameItem 不是 nil,它是 "Game" 项目的正确 UIBarButtonItem,如屏幕截图所示。该代码在生产中运行良好,直到最近我尝试使用 iOS 8 编译同一个项目(它是使用 iOS 7 编译的)。

突然,菜单在设备的底部边缘附近被截断了。而且,有一个透明的黑色东西横着覆盖了大约3/4的屏幕。

我不知道为什么会发生这种情况,也不确定如何解决。

您使用的是自动布局吗?

我不确定,但可能 constraints.I 这么说是因为您的 "Game" 和 "Flip" 按钮看起来比您预期的要小。

因此,我建议您删除对主视图视图的限制,然后再次添加它们,而无需通过底部的 "pin" 菜单检查 "constrain to margins"。

如果不是这种情况,请添加您在 iOS 7.

中看到的内容