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:
và 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
.
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 –