【发布时间】:2013-09-12 22:52:08
【问题描述】:
我注意到在iOS 7 a **UIActionSheet** automatically dismisses 时user taps anywhere on the screen on an **iPhone**。这在 iOS 6 中并非如此,并且会导致意想不到的效果。 Is this a UI change? Bug? Is there a way to disable this?
From iOS 7 docs:
"如iOS人机界面所述 指南,您应该在操作表中包含一个取消按钮 显示在 iPhone 和那些显示在 iPad 上的打开 弹出框。否则,在 iPad 上,操作表会显示在 弹出框,用户可以通过点击外部取消操作表 弹出框,在这种情况下,您不需要包含取消 按钮。”
这似乎表明在操作表之外的任何地方点击时关闭的行为应该只适用于 iPad。但这现在发生在运行 iOS 7 的 iPhone 上,而运行 iOS 6 的 iPhone 上却没有
【问题讨论】:
-
我发现只有在有取消按钮的情况下才会在用户点击屏幕上的任意位置时关闭,这可以让您通过没有取消按钮来解决此问题。
-
我发现 UIActionSheet 在单击一个按钮后不会被关闭 - 您需要按两次按钮!如果我使用 -[UIActionSheet showInView:],就会发生这种情况。任何解决方法?
-
我发现 UIActionSheet 在单击一个按钮后不会被关闭 - 您需要按两次按钮!如果我使用 -[UIActionSheet showInView:],就会发生这种情况。任何解决方法?我有一个 UICollectionView 数据源,我在其中调用 [actionSheet showInView:self.controller.view]。需要点击 2 次才能关闭。
-
@DeepakSharma 我没有这个问题。操作表是否有取消按钮。如果是这样,如果您点击操作表的外部,它会关闭吗?
-
@Scott 我不希望这种行为的原因是因为我绝对希望用户在操作表上做出决定。当操作表出现时,用户很可能已经多次点击屏幕,因此用户可能会在操作表出现时不小心在操作表之外点击,从而在用户阅读并制作之前将其关闭一个选择。
标签: objective-c cocoa uiactionsheet ios7