使用UIImagePickerController时,额外的“幽灵”相机按钮

时间:2013-07-23 08:58:35

标签: ios objective-c ipad uiimagepickercontroller uipopovercontroller

在社区应用程序开发中,我的任务是将iPhone应用程序制作成iPad应用程序。

根据文档,我使用以下代码生成我的相机视图:

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        self.imagePickerController = [[UIImagePickerController alloc] init];
        self.imagePickerController.delegate = self;
        self.imagePickerController.sourceType = sourceType;
        if (sourceType == UIImagePickerControllerSourceTypeCamera) {
            if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]) {
                self.imagePickerController.cameraDevice =  UIImagePickerControllerCameraDeviceFront;
            }
            self.imagePickerController.allowsEditing = YES;
            self.imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
        }

        popover = [[UIPopoverController alloc] initWithContentViewController:self.imagePickerController];
        [popover presentPopoverFromRect:self.profilePicture.frame
                                 inView:self.view
               permittedArrowDirections:UIPopoverArrowDirectionAny
                               animated:YES];
        return;
    }

但是当它产生时,我会得到这个令人讨厌的“额外幽灵”相机按钮......

This button is NOT welcome...

它不起作用,似乎只是嘲笑我。

如果我要求对象隐藏其输入按钮,则所有按钮都会消失。我认为没办法告诉那个特定的按钮。

更新

我发现它只是第一次出现。如果我关闭并重新打开弹出窗口,它就消失了......

1 个答案:

答案 0 :(得分:1)

可悲的是,这似乎是iOS 6本身的一个错误。但是,有一些可能的解决方法。

您可以将图像选择器的showsCameraControls属性设置为false。这将删除幽灵般的图像,但其他控件也将被删除。您必须使用按钮编写自己的视图,并使用什么来调用正确的操作。

你说如果关闭并重新打开弹出窗口,按钮就会消失。您可以将选择器的showsCameraControls属性设置为false,然后在显示选择器之前返回true。如果它不起作用,请尝试在初始化选择器时创建一种假的打开/关闭操作。