Hướng dẫn sử dụng UIImagePickerController

83

Như các bạn đã biết, ứng dụng có chức năng chụp hình hay chọn hình từ thư viện là khá phổ biến trên App Store. Và theo xu hướng đó, trong bài viết hôm nay, IDE Academy sẽ hướng dẫn các bạn sử dụng UIImagePickerController để có thể chụp hình hoặc lấy hình từ thư viện ảnh của thiết bị.

Đầu tiên, chúng ta sẽ khởi tạo biến có kiểu là UIImagePickerController theo dạng Optional.

Trở về Main.storyboard, chúng ta sẽ kéo vào UIImageViewUIButton, ánh xạ nó vào file ViewController

UIImageView & UIButton

chúng ta sẽ kiểm tra xem thiết bị chúng ta có Camera, chúng ta sẽ hiển thị thông báo cho user chọn chụp hình mới hay là chọn từ Photo Library hoặc nếu không có chúng ta sẽ cho user truy cập vào Photo Library.

Tiếp theo chúng ta sẽ thiết lập .sourceType, allowsEditing, delegate cho imagePicker ở từng các action cũng như trường hợp thiết bị không có camera, và ở đây chúng ta sẽ thiết lập chúng ở func presentImagePickerController(sourceType: UIImagePickerControllerSourceType )

Ở đây, chúng ta sẽ bị lỗi ở chỗ chúng ta thiết lập delegate của imagePicker = self, để khắc phục tình trạng đó chúng ta sẽ extension ViewController của chúng ta với UIImagePickerControllerDelegate, UINavigationControllerDelegate

Bước tiếp theo, ở:

chúng ta sẽ kiểm tra như sau:

 

  1. Chúng ta sẽ kiểm tra xem

     

     có khác nil và có phải là kiểu String hay không, và phía sau “,” chúng ta lại kiểm tra 1 lần nữa nó có phải là kUTTypeImage (ở đây, chúng ta sẽ downcast nó về String). Và để sử dụng kUTTypeImage chúng ta cần

     

  2. Hãy chắc chắn rằng

    khác nil và có thể downcast về kiểu URL hay không?

  3. Ở bước này, chúng ta cũng làm tương tự các công việc trên để lấy được UIImageđể có thể gắn vào imageView trên Main.storyboard
  4. Chúng ta làm công việc tương tự ở bước 3 để lấy được hình ảnh từ Camera
  5. Sau khi lấy được hình ảnh, chúng ta sẽ dismiss Camera hoặc Thư viện ảnh đi.

Sau khi thực hiện các công việc kể trên, việc làm cuối cùng của chúng ta sẽ là quay về file info.plist và thêm:

Camera info.plist

OK! Vậy là mình đã có thể chụp ảnh hoặc chọn ảnh từ thư viện để gắn vào imageView trên màn hình. Hy vọng qua bài viết này, các bạn đã có thể sử dụng được

để xây dựng App có sử dụng Camera hoặc là Photo Library.

Nguồn: IDE Academy