Image Picker In Xamarin iOS App

Introduction

Xamarin is a platform to develop cross-platform and multi-platform apps (for example, Windows phone, Android and iOS). In Xamarin platform, the code sharing concept is used. In Xamarin Studio, Visual Studio is also available. 
 
 
 
 
Prerequisites
  • Xamarin Studio.
  • Xcode.
The steps given below are required to be followed in order to pick an image in Xamarin iOS, using Xamarin Studio.

Step 1
 
Go to Xamarin Studio.

Click New Solution—> select iOS—>select App--> Choose single View App. Afterwards, click Next.

 
Step 2

In this step, configure your app. Give the app name (Ex:sample), Organization Identifier. Afterwards, click Next.
 
 

Step 3

In this step, give your project name (Ex: Sample) and the solution name (Ex: Sample). Give the path of your project. Afterwards, click Create.
 
 

Step 4

Subsequently, go to the solution. In the solution, get all the files and the sources in your project. Now, select Main.storyboard and double click to open Main.storyboard page.
 
 
 
Step 5

After opening the Main.storyboard, you can design this page, as per your desire.
 
 
 
Step 6

Now, go to the toolbox Window. In the toolbox Window, get all the types of the tools and controls. You need to go to the toolbox Window. Now, scroll down and you will see all the tools and controls. You need to drag and drop the button.

Now, you need to align the button, using the constraints.
 
 
 
Step 7

Now, go to the properties Window. Select the button and give a name (Ex:btnPick).
 
 
 
Step 8

You need to drag and drop the ImageView.

You need to align the ImageView, using the constraints.
 
 
 
Step 9

Now, go to the properties Window. Select the ImageView and give a name (Ex:imgView).
 
 
 
Step 10

In this step, go to ViewController.cs page. Write the code given below.
 
ViewController.cs 
  1. using System;  
  2. using Foundation;  
  3. using UIKit;  
  4. namespace XamarinIosImagePicker {  
  5.     public partial class ViewController: UIViewController {  
  6.         UIImagePickerController picker;  
  7.         protected ViewController(IntPtr handle): base(handle) {  
  8.             // Note: this .ctor should not contain any initialization logic.  
  9.         }  
  10.         public override void ViewDidLoad() {  
  11.             base.ViewDidLoad();  
  12.             // Perform any additional setup after loading the view, typically from a nib.  
  13.         }  
  14.         partial void BtnPick_TouchUpInside(UIButton sender) {  
  15.             picker = new UIImagePickerController();  
  16.             picker.SourceType = UIImagePickerControllerSourceType.PhotoLibrary;  
  17.             picker.MediaTypes = UIImagePickerController.AvailableMediaTypes(UIImagePickerControllerSourceType.PhotoLibrary);  
  18.             picker.FinishedPickingMedia += Finished;  
  19.             picker.Canceled += Canceled;  
  20.             PresentViewController(picker, animated: true, completionHandler: null);  
  21.         }  
  22.         public void Finished(object sender, UIImagePickerMediaPickedEventArgs e) {  
  23.             bool isImage = false;  
  24.             switch (e.Info[UIImagePickerController.MediaType].ToString()) {  
  25.                 case "public.image":  
  26.                     isImage = true;  
  27.                     break;  
  28.                 case "public.video":  
  29.                     break;  
  30.             }  
  31.             NSUrl referenceURL = e.Info[new NSString("UIImagePickerControllerReferenceUrl")] as NSUrl;  
  32.             if (referenceURL != null) Console.WriteLine("Url:" + referenceURL.ToString());  
  33.             if (isImage) {  
  34.                 UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage;  
  35.                 if (originalImage != null) {  
  36.                     imgView.Image = originalImage;  
  37.                 }  
  38.             } else {  
  39.                 NSUrl mediaURL = e.Info[UIImagePickerController.MediaURL] as NSUrl;  
  40.                 if (mediaURL != null) {  
  41.                     Console.WriteLine(mediaURL.ToString());  
  42.                 }  
  43.             }  
  44.             picker.DismissModalViewController(true);  
  45.         }  
  46.         void Canceled(object sender, EventArgs e) {  
  47.             picker.DismissModalViewController(true);  
  48.         }  
  49.         public override void DidReceiveMemoryWarning() {  
  50.             base.DidReceiveMemoryWarning();  
  51.             // Release any cached data, images, etc that aren't in use.  
  52.         }  
  53.     }  
  54. }   
 
 
Step 11

In this step, set Photo Library Access Permission in your app. Go to Solution Explorer—>Info.plist. Now, add Privacy-Photo Library Usage Description. permission.
 
 
 
Step 12

Now, go to Run option, choose Debug, the list of iPhone and iPad Simulators, which are available. You can choose any one simulator and run it.
 
 
 
Output

After  a few seconds, the app will start running on your iPhone Simulator.You will see your app is working successfully. You can click pick Image Button.Your photo Library will open.
 
 

Now, you can choose an image. The image will display the Image view.

 
 
Summary

This was the process of how to pick an image in Xamarin iOS, using Xamarin Studio.