我遇到了一个问题。 我正在录制视频,而我已经在UIImagePicker的CameraOverLay中放置了一个带有UIImage的UIImageView。 因此,当用户启动相机以捕捉视频时,他可以在相机上看到一个覆盖层。当用户停止捕捉并移动到UIImagePicker的“取消或重拍”屏幕时,cameraOverlayView仍然可见。
如何在“重拍或取消”屏幕中不显示覆盖层?
我遇到了一个问题。 我正在录制视频,而我已经在UIImagePicker的CameraOverLay中放置了一个带有UIImage的UIImageView。 因此,当用户启动相机以捕捉视频时,他可以在相机上看到一个覆盖层。当用户停止捕捉并移动到UIImagePicker的“取消或重拍”屏幕时,cameraOverlayView仍然可见。
如何在“重拍或取消”屏幕中不显示覆盖层?
通过注册到NSNotificationCenter,监听@"_UIImagePickerControllerUserDidCaptureItem"和@"_UIImagePickerControllerUserDidRejectItem"来解决问题。
对于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")
})