首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在iPad上使用UIActionSheet

在iPad上使用UIActionSheet
EN

Stack Overflow用户
提问于 2010-11-02 22:55:25
回答 1查看 25.4K关注 0票数 18

苹果的UIActionSheet文档让我感到困惑。首先,在iPad人机接口指南中,它说:

要了解有关在代码中使用操作表的更多信息,请参阅iPad编程指南中的“使用弹出式窗口显示内容”。

但是在“使用Popovers显示内容”部分,它根本没有提到Action Sheet!我是不是漏掉了什么?

http://developer.apple.com/library/ios/#documentation/General/Conceptual/iPadHIG/UIElements/UIElements.html#//apple_ref/doc/uid/TP40009446-CH6-SW9

我的主要问题是:在iPad上,UIPopoverController和UIActionSheet有什么不同?如果UIActionSheet自动出现在UIPopoverController中,还有使用UIActionSheet的理由吗?我看到它的委托和按钮的自动创建使得代码行更少,但是从可用性的观点来看,有区别吗?

而且,用动画显示我的actionSheet根本不起作用。它的外观和行为完全像一个没有动画的actionSheet (这与我只使用UIPopoverController而根本没有actionSheet完全一样)。下面是我的代码:

代码语言:javascript
复制
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,但理解这一点仍然是有用的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-01-14 07:21:47

首先,UIActionSheetUIPopoverController之前就存在了,而UIPopoverController在iPhone上是不可用的,所以它对向后兼容和通用应用程序很有用。

此外,UIActionSheet不一定会出现在弹出式窗口中,特别是当您从已经在弹出式窗口内的UIBarButtonItemUIToolbar中显示它时。然后,它以与iPhone上类似的方式显示(从视图控制器的底部滑入)。根据HIG的说法,你不能同时呈现多个弹出窗口(我曾经有一个应用程序因此而被拒绝),所以在视图控制器可能在弹出窗口内的情况下(比如在标准的拆分视图应用程序中),如果可能的话,你可能会想要使用操作表。当然,在很多情况下,您不能将弹出窗口替换为操作表单,因为操作表单只显示按钮列表和标题,而弹出窗口可以显示任何视图控制器。

我认为只有当动作单以“经典”(如iPhone)的方式呈现时,animated参数才有效。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4078871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档