Để chụp ảnh nhanh chóng từ máy ảnh, chúng ta có thể sử dụng AVFoundation, đây là một khuôn khổ trong iOS SDK, nhưng chúng ta nên cố gắng tránh sử dụng nó cho đến khi chúng ta cần nhiều tính năng tùy chỉnh trong ứng dụng máy ảnh của mình. Trong ví dụ này, chúng tôi sẽ chỉ chụp ảnh từ máy ảnh và hiển thị trên chế độ xem. Chúng tôi sẽ sử dụng công cụ chọn hình ảnh trong ví dụ này thay vì AVFoundation.
Đầu tiên, tạo một dự án và thêm một chế độ xem hình ảnh trên Bộ điều khiển chế độ xem của nó trong bảng phân cảnh. Tạo cửa hàng trong lớp của nó. Bây giờ bên trong lớp ViewController tuân theo -
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate
Sau đó, tạo một hàm objc.
@objc func openCamera(){ }
Bây giờ trong Chế độ xem của bạn đã tải xong, hãy thêm công cụ nhận dạng cử chỉ chạm vào bộ điều khiển chế độ xem của bạn, công cụ này sẽ gọi hàm openCamera khi chạm vào màn hình.
override func viewDidLoad() { super.viewDidLoad() let gesture = UITapGestureRecognizer(target: self, action: #selector(openCamera)) self.view.addGestureRecognizer(gesture) }
Bây giờ, trong hàm thêm các dòng mã sau.
@objc func openCamera() { let imgPicker = UIImagePickerController() imgPicker.delegate = self imgPicker.sourceType = .camera imgPicker.allowsEditing = false imgPicker.showsCameraControls = true self.present(imgPicker, animated: true, completion: nil) }
Khi bạn đã thực hiện các bước trên, bây giờ chúng tôi sẽ triển khai phương thức didFinishPickingMediaWithInfo của UIImagePickerControllerDelegate và bên trong phương pháp này, chúng tôi sẽ nhận được hình ảnh mà người dùng chụp từ máy ảnh.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let img = info[UIImagePickerController.InfoKey.editedImage] as? UIImage { self.imgV.image = img self.dismiss(animated: true, completion: nil) } else { print("error") } } }
Bây giờ, chúng tôi cần thêm khóa mô tả sử dụng máy ảnh trong info.plist của chúng tôi và đưa ra mô tả lý do tại sao ứng dụng của chúng tôi muốn sử dụng máy ảnh. Khi chúng tôi chạy tính năng này trên iPhone và chụp ảnh, đây là kết quả được tạo ra. Ngoài ra, lưu ý rằng ứng dụng này không thể chạy trên trình mô phỏng.