UIImagePickerController -自定义覆盖上的重拍按钮(Swift)

cetgtptt  于 2024-01-05  发布在  Swift
关注(0)|答案(2)|浏览(210)

我试图用UIImagePickerController实现一个自定义cameraOverlayView。我设法隐藏按钮并拥有自己的界面,但自定义界面阻止了预览选项和重拍的编辑屏幕。我注意到在一些旧帖子中为“_UIImagePickerControllerUserDidCaptureItem“添加了两个按钮,“_UIImagePickerControllerUserDidRejectItem“,然后添加和删除覆盖可以解决这个问题。但是在Swift 3中,我似乎找不到如何访问这些通知,并且UIImagePickerController的委托非常有限。还有其他方法吗?

e37o9pze

e37o9pze1#

幸运的是,在2023年,它现在再次完美地工作:

  1. ///Standard camera picker which is aware of when the user "takes/retakes".
  2. class OverlayPickerVC: UIImagePickerController {
  3. override func viewDidLoad() {
  4. super.viewDidLoad()
  5. NotificationCenter.default
  6. .addObserver(forName:
  7. NSNotification.Name(rawValue:
  8. "_UIImagePickerControllerUserDidCaptureItem"),
  9. object:nil, queue:nil, using: { [weak self] _ in
  10. // the user did tap the default shutter button
  11. // we're now in 'preview' mode
  12. self?.. for example, hide your crosshairs overlay
  13. })
  14. NotificationCenter.default
  15. .addObserver(forName:
  16. NSNotification.Name(rawValue:
  17. "_UIImagePickerControllerUserDidRejectItem"),
  18. object:nil, queue:nil, using: { [weak self] _ in
  19. // the user did tap the retake button
  20. // we're now in 'take a photo' mode
  21. self?.. for example, show your crosshairs overlay
  22. })
  23. }
  24. }

字符串
我不知道为什么它在2010年代不适用于OP,但幸运的是,它今天工作得很好。
您可以使用UIImagePickerController的完全标准接口,但可以控制“take”和“retake”模式。

展开查看全部
k0pti3hp

k0pti3hp2#

似乎你不能访问“重拍”事件,所以有必要创建一个自定义的“编辑”屏幕.我在同一customCameraOverlay,按钮“重拍”和“使用它”.所以当用户停止捕获我隐藏记录和取消按钮,我提出重拍和使用它选项,添加预览。因此,当用户单击重拍时,我再次反转按钮并删除预览视图。同样,在“使用它”上,完成捕获被调用

相关问题