2011-06-17 38 views
13

Tôi cần trợ giúp. Tôi cần tích hợp máy ảnh vào ứng dụng của mình và tôi muốn tìm hiểu về những điều sau đây:Hướng dẫn tích hợp máy ảnh iPhone Xcode

  1. Tôi cần nút máy ảnh trên chế độ xem của mình để nhấp vào nó sẽ mở chế độ xem máy ảnh.
  2. Tôi chụp ảnh
  3. Tôi cần mã để tôi có quyền truy cập vào Thư viện điện thoại và sau đó hiển thị ảnh ở chế độ xem khác.

Có ai vui lòng chỉ cho tôi đúng hướng không?

+0

Xin chào Ghé thăm liên kết này http://stackoverflow.com/questions/10176020/how-to-take-picture-from-camera-using-iphone-app –

Trả lời

52

Vâng, UIImagePickerController là công cụ mà bạn cần. Nó sẽ làm hầu hết những thứ trong danh sách kiểm tra đó.

Đối với nút, bạn có thể tạo nút tùy chỉnh có đồ họa hoặc nếu bạn định sử dụng thanh công cụ hoặc thanh điều hướng để giữ nút, bạn có thể tạo nút thanh bằng cách sử dụng mục hệ thống UIBarButtonSystemItemCamera. Điều này sẽ cung cấp cho bạn hình ảnh khung.

Khi nhấn vào đó, bạn sẽ tạo một phiên bản UIImagePickerController và trình bày nó một cách bình thường.

UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; 
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
imagePicker.delegate = self; 
[self presentModalViewController:imagePicker animated:YES]; 
[picker release]; 

Như bạn có lẽ đã nhận thấy rằng nó có một tài sản được định nghĩa là id < UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate;, do đó bạn sẽ phải áp dụng cả hai giao thức nhưng trong hầu hết trường hợp, bạn thực hiện chỉ có hai phương pháp delegate-imagePickerControllerDidCancel:imagePickerController:didFinishPickingMediaWithInfo:. Có một phương thức khác trong giao thức UIImagePickerControllerDelegate nhưng không được chấp nhận. Không sử dụng nó ngay cả khi bạn thấy nó được đề cập rất nhiều ở đây. Bạn mong chờ trình xử lý hủy được viết như thế này,

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Các phương pháp khác là nơi bạn làm hầu hết mọi thứ.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage * image = [info objectForKey:UIImagePickerControllerEditedImage]; 

    // You have the image. You can use this to present the image in the next view like you require in `#3`. 

    [self dismissModalViewControllerAnimated:YES]; 
} 

Chụp ảnh được thực hiện tự động theo trường hợp UIImagePickerController. Tuy nhiên, nếu bạn muốn ghi đè điều khiển của họ, bạn có thể thực hiện điều này bằng cách đặt showsCameraControls thành NO và sau đó triển khai cameraOverlayView của riêng bạn. Nếu bạn đã làm như vậy và đã gán một nút để chụp ảnh, bạn có thể thực sự kích hoạt hành động hình ảnh bằng cách sử dụng phương thức takePicture. Vì vậy, điều này nên giải quyết #2.

Bạn cũng có thể sử dụng các thuộc tính khác để điều chỉnh bộ chọn hình ảnh của mình. Ví dụ: bạn có thể giới hạn người dùng chỉ chụp ảnh bằng cách sử dụng thuộc tính mediaTypes.

+0

CẢM ƠN NHIỀU LỚN !! – Legolas

+0

Dude !! http://stackoverflow.com/questions/6444107/help-with-modal-view-controller-login – Legolas

+1

+1 để có câu trả lời hay. Rất tốt giải thích, cảm ơn rất nhiều. – Peter

0

Diễn giải tài liệu, dismissModalViewControllerAnimated: không được dùng nữa từ iOS6 trở đi. Sử dụng dismissViewControllerAnimated:completion: để thay thế.

Các vấn đề liên quan