iOS
UIImagePickerController
खोज…
परिचय
UIImagePickerController उपयोगकर्ता को अपने डिवाइस से एक छवि का चयन करने या कैमरे के साथ एक तस्वीर लेने और फिर उस छवि को प्रस्तुत करने की अनुमति देने के लिए लगभग एक बॉक्स समाधान प्रदान करता है। UIImagePickerControllerDelegate के अनुरूप, आप अपने ऐप में निर्दिष्ट कर सकते हैं कि छवि कैसे पेश की जाए और इसके साथ क्या किया जाए (didFinishPickingMediaWithInfo का उपयोग करके) और यह भी कि अगर उपयोगकर्ता एक छवि का चयन करने के लिए या एक चित्र लेने के लिए क्या करता है (imagePickerControllerDidCancel) )।
UIImagePickerController का सामान्य उपयोग
चरण 1: नियंत्रक बनाएं, प्रतिनिधि सेट करें, और प्रोटोकॉल के अनुरूप
//Swift
class ImageUploadViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
let imagePickerController = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
imagePickerController.delegate = self
}
}
//Objective-C
@interface ImageUploadViewController : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate> {
UIImagePickerController *imagePickerController;
}
@end
@implementation ImageUploadViewController
- (void)viewDidLoad {
[super viewDidLoad];
imagePickerController.delegate = self;
}
@end
ध्यान दें: हम वास्तव में के रूप में परिभाषित कुछ भी लागू नहीं होगा UINavigationControllerDelegate
, लेकिन UIImagePickerController
से विरासत में मिली UINavigationController
और के व्यवहार में परिवर्तन UINavigationController
। इसलिए, हमें अभी भी कहना होगा कि हमारा व्यू कंट्रोलर UINavigationControllerDelegate
अनुरूप है।
चरण 2: जब भी आपको UIImagePickerController
दिखाने की आवश्यकता हो:
//Swift
self.imagePickerController.sourceType = .Camera // options: .Camera , .PhotoLibrary , .SavedPhotosAlbum
self.presentViewController(self.imagePickerController, animated: true, completion: nil)
//Objective-C
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; // options: UIImagePickerControllerSourceTypeCamera, UIImagePickerControllerSourceTypePhotoLibrary, UIImagePickerControllerSourceTypeSavedPhotosAlbum
[self presentViewController:imagePickerController animated:YES completion:nil];
चरण 3: प्रतिनिधि विधियों को लागू करें:
//Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
// Your have pickedImage now, do your logic here
}
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
//Objective-C
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *pickedImage = info[UIImagePickerControllerOriginalImage];
if (pickedImage) {
//You have pickedImage now, do your logic here
}
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self dismissViewControllerAnimated:YES completion:nil];
}