首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ipad上的Actionsheet

ipad上的Actionsheet
EN

Stack Overflow用户
提问于 2013-02-27 04:29:41
回答 2查看 8K关注 0票数 3

这段代码在iPhone上运行良好,但在iPad上,操作表显示在屏幕中央。而不是在触发器按钮所在的角落。此外,也没有显示取消按钮。

此外,该应用程序仅处于横向模式。摄像机触发按钮位于屏幕的右上角。

代码语言:javascript
复制
mediaPicker = [[UIImagePickerController alloc] init];
mediaPicker.allowsEditing = YES;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:@"Take photo", @"Choose Existing", nil];
    //[actionSheet showInView:self.view];
    [actionSheet showInView:self.navigationController.view];
}
// If device doesn't has a camera, Only "Choose Existing" and "Cancel" options will show up.
else {
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:@"Choose Existing", nil];
    [actionSheet showInView:self.view];
}

我需要动作单来显示按钮的位置。我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-27 04:35:21

关于actionsheets和取消按钮,IPAD有一些特殊的规则,这通常取决于你在哪里显示actionsheets

您可以显示UIToolbarUITabBarUIBarButtonItemUIView中的动作单。在确定如何显示操作表时,此类会将起始视图和当前平台考虑在内。对于在iPhone和iPod触控设备上运行的应用程序,操作表单通常会从拥有视图的窗口底部向上滑动。对于在iPad设备上运行的应用程序,操作表通常显示在以适当方式锚定到起始视图的弹出窗口中。在弹出窗口外点击会自动关闭操作表,就像在任何自定义按钮内点击一样。您也可以通过编程方式关闭它。

在iPad上显示动作单时,有时不应包含取消按钮。如果仅演示操作工作表,系统将在弹出窗口中显示操作工作表,而不使用动画。由于在弹出窗口外轻击可在不选择项目的情况下取消操作表,因此这将导致默认的取消工作表的方式。因此,包含cancel按钮只会造成混乱。但是,如果您有一个现有的弹出窗口,并且正在使用动画在其他内容的顶部显示操作表,则仍然适合使用取消按钮

不使用showInView,而是尝试使用这些方法中的一种

代码语言:javascript
复制
[actionSheet showFromBarButtonItem:barItem animated:YES];

解释是here & here

票数 8
EN

Stack Overflow用户

发布于 2013-02-27 04:41:52

在iPad上,不要使用showInView:。相反,可以使用其他更具体的方法来显示操作表,例如showFromBarButtonItem:animated:

正如在nsgulliver的回答中所指出的,在iPad上不显示取消按钮是正常的。所有用户需要做的就是在操作表之外点击。这与取消的处理方式相同。

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

https://stackoverflow.com/questions/15098660

复制
相关文章

相似问题

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