编辑代码

var myString = "Hello world!     -  swift.jsrun.net"
print(myString)import UIKit
import AVFoundation

class CameraViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    // 创建一个按钮来触发相机
        let cameraButton: UIButton = {
                let button = UIButton(type: .system)
                        button.setTitle("打开相机", for: .normal)
                                button.addTarget(self, action: #selector(takePhoto), for: .touchUpInside)
                                        return button
                                            }()

                                                override func viewDidLoad() {
                                                        super.viewDidLoad()
                                                                // 设置界面
                                                                        view.addSubview(cameraButton)
                                                                                cameraButton.frame = CGRect(x: 100, y: 100, width: 200, height: 50)
                                                                                        
                                                                                                // 检查相机权限
                                                                                                        checkCameraPermissions()
                                                                                                            }

                                                                                                                @objc func takePhoto() {
                                                                                                                        if UIImagePickerController.isSourceTypeAvailable(.camera) {
                                                                                                                                    let picker = UIImagePickerController()
                                                                                                                                                picker.delegate = self
                                                                                                                                                            picker.sourceType = .camera
                                                                                                                                                                        picker.allowsEditing = false
                                                                                                                                                                                    present(picker, animated: true, completion: nil)
                                                                                                                                                                                            } else {
                                                                                                                                                                                                        // 相机不可用
                                                                                                                                                                                                                    print("相机不可用")
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                    // UIImagePickerControllerDelegate 方法
                                                                                                                                                                                                                                        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
                                                                                                                                                                                                                                                picker.dismiss(animated: true, completion: nil)
                                                                                                                                                                                                                                                        guard let image = info[.originalImage] as? UIImage else { return }
                                                                                                                                                                                                                                                                // 处理获取到的图片
                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                        func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
                                                                                                                                                                                                                                                                                picker.dismiss(animated: true, completion: nil)
                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                        // 检查相机权限
                                                                                                                                                                                                                                                                                            func checkCameraPermissions() {
                                                                                                                                                                                                                                                                                                    switch AVCaptureDevice.authorizationStatus(for: .video) {
                                                                                                                                                                                                                                                                                                            case .authorized:
                                                                                                                                                                                                                                                                                                                        // 已经授权
                                                                                                                                                                                                                                                                                                                                    print("已经授权")
                                                                                                                                                                                                                                                                                                                                            case .notDetermined:
                                                                                                                                                                                                                                                                                                                                                        // 请求授权
                                                                                                                                                                                                                                                                                                                                                                    AVCaptureDevice.requestAccess(for: .video) { granted in
                                                                                                                                                                                                                                                                                                                                                                                    if granted {
                                                                                                                                                                                                                                                                                                                                                                                                        print("用户授权")
                                                                                                                                                                                                                                                                                                                                                                                                                        } else {
                                                                                                                                                                                                                                                                                                                                                                                                                                            print("用户拒绝授权")
                                                                                                                                                                                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case .restricted, .denied:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            // 权限被限制或拒绝
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        print("权限被限制或拒绝")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @unknown default:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            fatalError("未知授权状态")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }