Actionsheet iPad上(Actionsheet on ipad)

2019-08-17 04:59发布

此代码工作正常在iPhone上,但在iPad上的actionsheet是显示屏幕的中间了。 未在触发按钮的角落。 还没有取消按钮显示出来。

此外,应用程序只在横向模式。 相机触发按钮在屏幕的右上角。

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];
}

我需要actionsheet现身其中按钮。 我应该如何去做。

Answer 1:

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

您可以显示从动作片UIToolbarUITabBarUIBarButtonItem ,或从一个UIView 。 确定如何呈现动作片时,这类需要的起始视图和当前平台考虑。 有关iPhone和iPod touch设备上运行的应用程序,所述动作片通常从拥有该视图中的窗口的底部向上滑动。 有关iPad设备运行的应用程序,所述动作片通常显示在锚定到起始视图以适当的方式一个酥料饼 。 的酥料饼的外抽头自动关闭该动作片,因为任何自定义按钮内做抽头。 您也可以通过编程驳回。

当显示在iPad上的动作片,有些时候,你不应该包括取消按钮。 如果你是刚刚呈现的动作片,系统会显示一个酥料饼里面的动作片,而无需使用动画。 因为酥料饼外抽头驳回动作片而不选择一个项目,这将导致一个缺省的方式取消片。 因此,包括取消按钮只会造成混乱。 不过,如果你有一个现有的酥料饼,并用动画的显示上的其他内容之上的动作片,一个取消按钮仍然是适当

而不是使用showInView尝试这些方法之一使用

[actionSheet showFromBarButtonItem:barItem animated:YES];

释是在这里和这里



Answer 2:

在iPad上,不要使用showInView: 相反,使用的其他更具体的方法中的一种用于显示动作片如showFromBarButtonItem:animated:

正如nsgulliver的回答指出,对于动作片不显示在iPad上的取消按钮是正常的。 所有用户需要做的动作片的外侧被挖掘。 这是同等对待取消。



文章来源: Actionsheet on ipad