上的UIImagePickerController预览没有覆盖

问题描述 投票:8回答:3

我工作的一个iPhone应用程序,它利用了的UIImagePickerController的摄像头覆盖的看法。但是,我遇到的问题是,我的覆盖仍然是在屏幕上时,图像拍摄,预览屏幕上弹出。这看起来很奇怪。所以,我需要做的两件事情,两者都被证明比我本来希望更多的困难之一:

  1. 取出覆盖在预览屏幕是活跃
  2. 不显示预览画面

我知道,我可以通过设置showsCameraControls = NO完成#2 - 不过,我目前没有创造我自己的相机控制,我还是想用默认控件。这似乎是一个大锤办法说我需要重新创建一个定制的界面完全正常的UI只是为了让周围的预览画面。

在边咆哮,我觉得这恼人的是,内置的摄像头不使用预览屏幕,但苹果显然是迫使应用程序去竭尽全力避免使用它。似乎不可思议。

iphone uiimagepickercontroller
3个回答
1
投票

请确保您设置的委托作为imagePicker.delegate=self;

并要求委托梅索德

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; 你来自哪里,上海华删除imagePicker.view(取决于你叫的方式)

我希望帮助


1
投票

我关掉相机控制。这样做会关闭预览画面。所以从那里你可以使自己的预览画面(或只是没有在所有有一个预览画面,我只是用照片调用takePicture()后,当你调用takePicture()函数,你会得到你想要的回电废除是

let vc                      = UIImagePickerController()
vc.sourceType               = .camera
vc.showsCameraControls      = false
let mask                    = MyMaskXibClassMask(vc, self)
vc.cameraOverlayView        = mask.view
vc.cameraOverlayView?.frame = self.view.bounds
self.present(vc, animated: true, completion:
{
  if let camvc = vc.visibleViewController
  {
    camvc.addChild(mask)
  }
})

凡MyMaskXibClassMask将有你的按钮来拍摄照片和其他任何你需要的。然后,也在我们的MyMaskXibClassMask下

@IBAction func take_picture()
{
  camera.delegate = self
  camera.takePicture()
}

当你调用“takePicture()”,你的委托将被调用(这样你就可以完全跳过预览)

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])

0
投票

你必须用@ “_ UIImagePickerControllerUserDidCaptureItem”,沿着用NSNotificationCenter @ “_ UIImagePickerControllerUserDidRejectItem”。

当进入预览视图可以去除覆盖:)的工作代码示例可以在这里找到:https://stackoverflow.com/a/23899448/1933185

© www.soinside.com 2019 - 2024. All rights reserved.