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

Nil*_*nch 8 objective-c uiimagepickercontroller ipad uipopovercontroller ios

在社区应用程序开发中,我的任务是将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;
    }
Run Code Online (Sandbox Code Playgroud)

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

这个按钮不受欢迎......

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

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

UPDATE

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

esw*_*ick 1

遗憾的是,这似乎是 iOS 6 本身的一个错误。不过,有一些可能的解决方法。

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

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