如何根据人机界面指南在iPad上进行删除确认

如何根据人机界面指南在iPad上进行删除确认,ipad,ios,user-interface,uialertview,uiactionsheet,Ipad,Ios,User Interface,Uialertview,Uiactionsheet,通过阅读,似乎没有“正确”的方法让用户在删除之前进行确认。在处理UIAlertView和UIActionSheet时,指南列出了3件事: 不要使用警报视图来确认用户启动的操作 不要在行动表(iPad上)上包含“取消”按钮 操作表必须至少有2个按钮 所以。。。我需要让用户确认他们想要删除某些内容。呈现给他们的唯一选择是实际删除该内容,或者什么也不做(取消)。他们可以选择什么都不做,只需单击操作表的外部即可将其取消。但这只为操作表留下一个按钮。您应该如何进行删除确认 在iPhone上,有一个动作

通过阅读,似乎没有“正确”的方法让用户在删除之前进行确认。在处理UIAlertView和UIActionSheet时,指南列出了3件事:

  • 不要使用警报视图来确认用户启动的操作
  • 不要在行动表(iPad上)上包含“取消”按钮
  • 操作表必须至少有2个按钮
所以。。。我需要让用户确认他们想要删除某些内容。呈现给他们的唯一选择是实际删除该内容,或者什么也不做(取消)。他们可以选择什么都不做,只需单击操作表的外部即可将其取消。但这只为操作表留下一个按钮。您应该如何进行删除确认

在iPhone上,有一个动作表的模态/动画版本,非常适合这个用途。但iPad完全改变了动作表的呈现方式。文档中说,你仍然可以通过动画在iPad上以模态的形式呈现动作表;但我发现无论动画是“是”还是“否”,它的外观和动作都完全相同。

我在我的应用程序中有一个“取消下载”
UIActionSheet
,我会弹出它来确认取消下载。我是这样展示的:

UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:nil 
                                                    delegate:self 
                                           cancelButtonTitle:nil 
                                      destructiveButtonTitle:@"Cancel downloads" 
                                           otherButtonTitles:nil];
[action showFromRect:self.cancel.frame inView:self animated:NO];
[action release];
其中,
self.cancel
ui工具栏中的
ui按钮
。这与照片应用程序中的“删除”确认具有相同的效果。如果苹果为他们的软件这么做,我想我的也没问题


希望这有帮助

点击UIActionSheet等同于取消它。而且,由于UIActionSheet只是调用它的选项上方(通常指向)的一个小窗口,因此它不会引起用户的注意。因此,在这种情况下,假定的直觉动作是将UIActionSheet的内容录制下来,使其消失。这就相当于一个取消按钮(根据模糊的文档,这也是为什么你“有时”不需要另一个按钮的原因)

从:

在iPad上展示行动表时,有时不应包括取消按钮。如果仅显示动作表,系统将在popover中显示动作表,而不使用动画。由于在弹出窗口外点击会在不选择项目的情况下关闭操作表,因此会以默认方式取消该工作表。因此,包括取消按钮只会导致混乱。但是,如果您有一个现有的popover,并且正在使用动画在其他内容的顶部显示操作表,则“取消”按钮仍然是合适的。有关更多信息,请参阅iOS人机界面指南

如果实现actionSheet:ClickedButtonIndex:方法,点击UIActionSheet将返回−1.其他按钮从索引0开始


我认为,在某些情况下,苹果的指导方针是不一致的或不可能的。但是,从文档的语言和我对HIG的阅读来看,您应该尝试满足有意义的条件,如果在您的实现中没有意义,就不要操心太多。

我很久以前提出的一个相关问题;这从未得到回应。不同的问题,但相同的主题:顺便说一句,许多应用程序使用警报视图来确认用户发起的操作,而不是被拒绝^)苹果实际上在自己的软件中使用警报视图来确认用户发起的操作。在设置中创建并尝试删除VPN。非常不一致的苹果。