13

我有这个问题:这是我的代码:

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Share the race" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Send with mail" otherButtonTitles:nil];
    popupQuery.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    [popupQuery showInView:self.view];
    [popupQuery release];

一切似乎都很好,2个按钮显示正确,“发送邮件”按钮还可以,但取消点击只在上方......这里有一个说明情况的镜头:

错误点击!

我该如何解决这个问题?

谢谢:)

4

3 回答 3

37

我的猜测是,底部的部分UIActionSheet超出了视图的范围,因此不响应触摸。

为了测试这个理论,添加另一个按钮并查看是否所有上部按钮都正常工作,但底部按钮仍然表现出这种行为。

要解决此问题,请确保视图延伸到屏幕底部。如果您的应用程序中有一个 tabBar,那将是我对问题的怀疑。showFromTabBar:如果您想要 tabBar 上方的工作表,或者showFromToolbar:从工具栏显示它,您可以使用它。

如果您没有底栏,那么我错了,不知道。

于 2011-07-14T21:10:53.153 回答
7

您应该将操作表显示为应用程序窗口的子视图,而不是当前视图的子视图。

UIActionSheet *actionSheet = [[UIActionSheet alloc] init...];

// ...

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

也许它会帮助别人。

快乐编码:)

于 2013-09-13T21:33:12.700 回答
2

利用

[actionSheet showFromTabBar:[[self tabBarController] tabBar]];

代替

[actionSheet showInView:self.view];
于 2013-08-22T10:49:29.763 回答