苹果的UIActionSheet文档让我感到困惑。首先,在iPad人机接口指南中,它说:
要了解有关在代码中使用操作表的更多信息,请参阅iPad编程指南中的“使用弹出式窗口显示内容”。
但是在“使用Popovers显示内容”部分,它根本没有提到Action Sheet!我是不是漏掉了什么?
我的主要问题是:在iPad上,UIPopoverController和UIActionSheet有什么不同?如果UIActionSheet自动出现在UIPopoverController中,还有使用UIActionSheet的理由吗?我看到它的委托和按钮的自动创建使得代码行更少,但是从可用性的观点来看,有区别吗?
而且,用动画显示我的actionSheet根本不起作用。它的外观和行为完全像一个没有动画的actionSheet (这与我只使用UIPopoverController而根本没有actionSheet完全一样)。下面是我的代码:
UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"An unsaved property already exists. You must assign a name to this property before creating a new property. Would you like to:"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:@"Overwrite"
otherButtonTitles:@"Open unsaved property", nil];
[action showFromRect:CGRectMake(0, 0, 200, 200) inView:self.mainSplitViewController.view animated:NO];
我如何才能得到一个看起来像苹果文档中的示例动画actionSheet的actionSheet (从地图应用程序中,您可以在联系人中添加位置)?
我可能最终会为此使用警报,而不是弹出窗口或actionSheet,但理解这一点仍然是有用的。
谢谢!
发布于 2011-01-14 07:21:47
首先,UIActionSheet
在UIPopoverController
之前就存在了,而UIPopoverController
在iPhone上是不可用的,所以它对向后兼容和通用应用程序很有用。
此外,UIActionSheet
不一定会出现在弹出式窗口中,特别是当您从已经在弹出式窗口内的UIBarButtonItem
或UIToolbar
中显示它时。然后,它以与iPhone上类似的方式显示(从视图控制器的底部滑入)。根据HIG的说法,你不能同时呈现多个弹出窗口(我曾经有一个应用程序因此而被拒绝),所以在视图控制器可能在弹出窗口内的情况下(比如在标准的拆分视图应用程序中),如果可能的话,你可能会想要使用操作表。当然,在很多情况下,您不能将弹出窗口替换为操作表单,因为操作表单只显示按钮列表和标题,而弹出窗口可以显示任何视图控制器。
我认为只有当动作单以“经典”(如iPhone)的方式呈现时,animated
参数才有效。
https://stackoverflow.com/questions/4078871
复制相似问题