如何通过 XCode 在 iOS 应用中实现相机功能

Posted

技术标签:

【中文标题】如何通过 XCode 在 iOS 应用中实现相机功能【英文标题】:How to implement camera functionality in iOS app through XCode 【发布时间】:2020-06-30 22:02:58 【问题描述】:

我从零开始开发 ios 应用程序,但我需要创建一个可以使用 iPhone 相机拍摄图像的应用程序。我找到了 UIImagePickerController 但我无法弄清楚如何正确实现它。如果有人可以帮助我,那就太好了。此外,我对应用程序开发知之甚少,因此如果有任何背景知识,我将不胜感激。

【问题讨论】:

【参考方案1】:

你可以在任何你想打开 UIImagePickerController 的地方调用这个方法:

func openImagePicker() 
    let vc = UIImagePickerController()
    vc.sourceType = .camera
    vc.allowsEditing = true
    vc.delegate = self
    present(vc, animated: true)

通过制作这样的扩展,使您的视图控制器同时符合 UINavigationControllerDelegate 和 UIImagePickerControllerDelegate:

extension youViewControllerClass: UIImagePickerControllerDelegate, UINavigationControllerDelegate 

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) 
        
        picker.dismiss(animated: true) // dismisses camera controller

        guard let image = info[.editedImage] as? UIImage else 
            print("No image found")
            return
        

        // You will get your image here
        print(image.size)
     

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController)
        picker.dismiss(animated: true, completion: nil)
        // here you will get the cancel event
    


【讨论】:

谢谢。我正在尝试将图像存储在应用程序的缓存中,以便可以在不将其存储在用户设备上的情况下对其进行分析(安全原因)。你对如何做到这一点有任何想法吗?还有一个问题。当我尝试将其放在将打开相机的视图中时,vc.delegate = selfpresent(vc, animated: true) 行出现错误。这两个错误都表明我正在使用未解析的标识符来表示自己和存在。我在extension youViewControllerClass:... 行也收到错误消息。此错误表示我正在使用未声明的类型。有什么办法可以解决这个问题? @AGoraya0710 您必须将此代码放在您拥有视图的 UIViewController 类中,因为present(vc, animated: true) 是 UIViewController 及其子类的属性。您还需要将 youViewControllerClass 替换为您的 UIViewController 的原始名称。 如果这是一个愚蠢的问题,我深表歉意。我没有 UIViewController 类。我拥有的类是:PhotoCaptureView.swift、ImagePicker.swift、ContentView.swift、SceneDelegate.swift 和 AppDelegate.swift。如果您愿意,我可以链接每个内部代码的图像,但我目前没有 UIViewController 类。我应该在哪里创建这个类以及如何创建? 如果您使用的是 swiftUI,您可以查看此答案,希望对您有所帮助。 [***.com/questions/56515871/…

以上是关于如何通过 XCode 在 iOS 应用中实现相机功能的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cameraX 在相机应用程序中实现 FlashToggle 按钮?

如何使用 iOS Pin It SDK 在 Pinterest 中实现 Followboard 按钮功能?

如何在实际应用中实现 CallKit?

如何在电容器中实现 ios 和 android google 登录?

如何在 Sandbox 的应用购买中实现和测试 iOS 上的免费试用?如何通过 Apple 收据验证流程和试用信息?

直接在应用程序中实现相机