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

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

  • 请勿使用警报视图来确认用户启动的操作。
  • 不要在操作表(在iPad上)上包含“取消”按钮。
  • 操作表必须至少有2个按钮。

所以…我需要让用户确认他们想删除一些东西。 呈现它们的唯一选择是实际删除事物,或什么都不做(取消)。 他们可以选择不做任何操作,只需点击操作表外部即可解散它。 但是这只留下了1个按钮用于操作表。 你打算怎么做删除确认?

在iPhone上,有动作表的模态/动画版本,可以很好地实现此目的。 但iPad完全改变了动作表的呈现方式。 文档说,你仍然可以通过动画呈现iPad上的动作表作为模态; 但我发现无论动画是YES还是NO,它的外观和行为都完全相同。

我在我的应用程序中有一个“取消下载” 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.cancelUIToolbarUIButton 。 这与照片应用中的“删除”确认具有相同的效果。 如果苹果公司为他们的软件做了这件事,我觉得它可以和我一样……

希望这可以帮助!

点击UIActionSheet与取消它是一样的。 而且由于UIActionSheet只是一个小窗口(并且通常指向)调用它的选项,它不会引起用户的注意。 因此,在这种情况下假定的直观行为是从UIActionSheet中取出以使其消失。 所以这等于取消按钮(根据模糊的文档,为什么你“有时”不需要另一个按钮)。

从UIActionSheet文档页面 :

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

如果实现actionSheet:clickedButtonAtIndex:方法,则单击UIActionSheet将返回-1的按钮索引。 其他按钮从索引0开始。

我认为,在某些情况下,Apple指南是不一致或不可能的。 但是从文档的语言和我对HIG的阅读中可以看出,如果在实现中没有意义,那么你应该尝试满足有意义的条件,而不要过多地冒汗。