UIImagePicker的cameraOverlayView出现在重新拍摄屏幕上

19

我遇到了一个问题。 我正在录制视频,而我已经在UIImagePicker的CameraOverLay中放置了一个带有UIImage的UIImageView。 因此,当用户启动相机以捕捉视频时,他可以在相机上看到一个覆盖层。当用户停止捕捉并移动到UIImagePicker的“取消或重拍”屏幕时,cameraOverlayView仍然可见。

如何在“重拍或取消”屏幕中不显示覆盖层?

2个回答

31

通过注册到NSNotificationCenter,监听@"_UIImagePickerControllerUserDidCaptureItem"和@"_UIImagePickerControllerUserDidRejectItem"来解决问题。


2
你救了我的一天!我知道这是可能的。非常感谢。我添加了一个代码示例 - jerik
@Raz 这些通知是私有API吗?你是否提交了使用这些通知的应用程序到iTunes?苹果是否批准了你的应用程序? - Ameet Dhas
@Bhushan,据我所知,它们不是私有API,我已经成功地提交了一个利用这些通知的应用程序到AppStore。 - Raz
1
@Raz 谢谢你提供的这些信息,它对我很有帮助。 - Ameet Dhas
没有检查过,但很可能是这样,因为通知是由操作系统广播的。 - Raz

6

对于Swift 4,它应该是这样的:

    NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "_UIImagePickerControllerUserDidCaptureItem"), object:nil, queue:nil, using: { note in
        print("camera did capture")
    })

    NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "_UIImagePickerControllerUserDidRejectItem"), object:nil, queue:nil, using: { note in
        print("user pressed Retake")
    })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接