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

3
阅读iOS人机界面指南,似乎没有“正确”的方法让用户在删除之前确认。指南列出了处理UIAlertView和UIActionSheet时的三个事项:
  • 不要使用警报视图来确认用户发起的操作。
  • 不要在操作表上(iPad上)包含“取消”按钮。
  • 动作表必须至少有两个按钮。
所以...我需要让用户确认他们想要删除某些东西。唯一的选择是向他们展示实际删除该物品或什么都不做(取消)。他们可以通过点击操作表外部选择不做任何事情,从而使其消失。但这只留下了一个按钮供操作表使用。你应该如何进行删除确认呢?
在iPhone上,有用于此目的的模态/动画版本的操作表非常好用。但是,iPad完全改变了操作表的呈现方式。文档说,您仍然可以通过动画呈现操作表来在iPad上呈现操作表;但是我发现无论是否启用动画,它看起来和行为都完全相同。

我之前有一个相关的问题,但从未得到回复。虽然是不同的问题,但涉及相同的主题:https://dev59.com/Km855IYBdhLWcg3w6Y5q - GendoIkari
顺便提一下,很多应用程序使用警报视图来确认用户发起的操作而没有被拒绝 ^) - Sergnsk
苹果实际上在他们自己的软件中使用警报视图来确认用户发起的操作。在设置中创建并尝试删除VPN。这非常不一致的苹果。 - conradev
2个回答

1

我的应用程序中有一个“取消下载”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 是在 UIToolbar 中的一个 UIButton。这会产生与照片应用程序中的“删除”确认相同的效果。如果苹果公司在他们的软件中使用它,我认为在我的软件中也可以使用...

希望这可以帮助到您!


1

从UIActionSheet上轻点是取消它的操作。由于UIActionSheet只是一个小窗口,通常指向调用它的选项,因此它并不拥有用户的注意力。因此,在这种情况下,假定直观的操作是轻点UIActionSheet使其消失。因此,这相当于一个取消按钮(这也是为什么根据模糊的文档,“有时候”您不需要另一个按钮的原因)。

来自UIActionSheet文档页面

在iPad上呈现操作表时,有时不应包括取消按钮。如果您只呈现操作表,则系统会在弹出窗口中显示操作表,而不使用动画。因为在弹出窗口之外的轻击会取消操作表而不选择任何项目,所以这会导致默认的取消表格的方式。因此,包括取消按钮只会引起混乱。但是,如果您有一个现有的弹出窗口,并且正在使用动画在其他内容的顶部显示操作表,则取消按钮仍然是适当的。有关更多信息,请参见iOS人机界面准则。

如果您实现了actionSheet:clickedButtonAtIndex:方法,从UIActionSheet上点击将返回一个按钮索引为-1。其他按钮从0开始计数。
我认为要点是苹果的指南在某些情况下是不一致或不可能的。但从文档的语言和我对HIG的阅读来看,您应该尝试满足有意义的条件,如果在您的实现中没有意义,也不必过于担心。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接