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("未知授权状态")
}
}
}