我有这个问题: 这是我的代码:
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个按钮显示正确,“发送邮件”按钮没问题,但取消仅在上方抓住点击... 这里有一个说明情况的镜头:
我该如何解决这个问题?
感谢:)
答案 0 :(得分:37)
我的猜测是UIActionSheet
的底部超出了视图的范围,因此不会对触摸做出响应。
要测试此理论,请添加另一个按钮,看看所有上部按钮是否正常工作,但底部按钮仍然显示此行为。
要解决此问题,请确保视图延伸到屏幕底部。如果你的应用程序中有一个tabBar,那将是我怀疑的问题。如果您希望工作栏位于tabBar上方,或showFromTabBar:
可以使用工具栏显示该工作表,则可以使用showFromToolbar:
。
如果你没有底栏,那我就错了,不知道。
答案 1 :(得分:7)
您应该将操作表显示为应用程序窗口的子视图,而不是当前视图。
UIActionSheet *actionSheet = [[UIActionSheet alloc] init...];
// ...
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
可能会帮助他人。
快乐编码:)
答案 2 :(得分:2)
使用
[actionSheet showFromTabBar:[[self tabBarController] tabBar]];
而不是
[actionSheet showInView:self.view];