【问题标题】:UIActionSheet on iPad is not showing cancel buttoniPad 上的 UIActionSheet 未显示取消按钮
【发布时间】:2011-05-17 09:34:10
【问题描述】:

我试图在UIActionSheet 中显示取消按钮,但它没有显示,这是可以接受的行为吗?请指教。

UIActionSheet *actionSheet = [[UIActionSheet alloc]
          initWithTitle:@"Are you sure you want to clear the cache?"
          delegate:self
          cancelButtonTitle:@"No"
          destructiveButtonTitle:@"Yes"
          otherButtonTitles:nil];

[actionSheet showInView:self.view];  

[actionSheet release];

【问题讨论】:

    标签: objective-c ipad ios4 uiactionsheet


    【解决方案1】:

    iPad 对操作表及其取消按钮有一些特殊规则,具体取决于您从何处显示它:

    您可以从工具栏、标签栏、按钮栏项目或视图中显示操作表。在确定如何呈现操作表时,此类会考虑起始视图和当前平台。对于在 iPhone 和 iPod touch 设备上运行的应用程序,操作表通常从拥有视图的窗口底部向上滑动。对于在 iPad 设备上运行的应用程序,操作表通常显示在以适当方式锚定到起始视图的弹出框中。在弹出框外点击会自动关闭操作表,在任何自定义按钮内点击也是如此。您也可以通过编程方式将其关闭。

    在 iPad 上显示操作表时,有时您不应该包含取消按钮。如果您只显示操作表,系统会在弹出框内显示操作表而不使用动画。因为在弹出框外点击会关闭操作表而不选择项目,这会导致默认方式取消工作表。因此,包括取消按钮只会引起混乱。但是,如果您有一个现有的弹出框并且正在使用动画在其他内容之上显示一个操作表,那么取消按钮仍然是合适的。如需更多信息,请参阅 iPad 人机界面指南。

    这里有更多解释的链接:http://crazyviraj.blogspot.com/2010/05/showing-cancel-button-in.html

    【讨论】:

    • 我很高兴读到这句话,这意味着我不会让用户感到困惑并寻找取消按钮?
    • 是的,这意味着大多数时候人们只是点击 iPad 上的操作表以外的某个地方说“取消”。检查 iPad 邮件应用程序以了解 Apple 处理此问题的一种方式(纵向模式,移动按钮),或在照片应用程序中查看删除按钮。
    • 在 iPad 上不显示取消按钮的上下文中,在 iOS8 上,UIActionSheet 中不需要“取消”字符串。但是,在 iOS7(及更早版本?)上,需要“取消”字符串,以便您确实在最后两项之间获得分隔符(我认为它仅适用于您有两个以上的项目) .啊!
    • @nevanking king Apple 有时会做出一些令人费解的 UI 决策。我的意思是您可以将此逻辑应用于 iPhone,并期望用户按下操作表之外的某个位置以取消它。我不明白为什么 iPad 不包含“取消”按钮。无论如何,这并不令人困惑。事实上,它让事情变得更加清晰......顺便说一句,我不是在这里拍摄信使,所以谢谢你提供Apple的可笑解释。
    猜你喜欢
    • 1970-01-01
    • 2015-01-19
    • 2013-07-29
    • 2014-11-08
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多