UIImagePickerController 映像選取器–在iPhone中調用照相機、照片庫—IOS開發

來源:互聯網
上載者:User
聲明

歡迎轉載,但是請尊重作者勞動成果,轉載請保留此框內聲明,謝謝。
文章出處:http://blog.csdn.net/iukey

UIImagePickerController 映像選取器是一種導航控制器類,讓你可以在應用程式中添加簡單的映像選擇功能或者照相機介面。使用者會看到一個映像選擇螢幕,在其中挑選相片,相片的來源則是他自己的相片庫、儲存下來的相片集或者照相機。當使用者選定一個相片後,就會通過 UIImagePickerDelegate 協議中的方法,通知選取器的委託。

你可以用  UIImagePickerController 類來建立映像選取器,並且可以將其作為一個獨立的導航控制器,添加到視窗中。

一、建立並添加到視圖中

UIImagePickerController* picker = [[UIImagePickerController alloc]init];[self.view addSubview:picker.view];

二、映像來源

你可以通過 sourceType 屬性設定多種映像來源,呈現給使用者:

picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

可以使用下列來源:

enum {UIImagePickerControllerSourceTypePhotoLibrary,//相片庫    UIImagePickerControllerSourceTypeCamera,//照相機    UIImagePickerControllerSourceTypeSavedPhotosAlbum//儲存的相片};typedef NSUInteger UIImagePickerControllerSourceType;

三、影像編輯

要讓使用者可以隨意移動以及縮放映像,可以將 allowsImageEditing 屬性設定為 YES,開啟影像編輯功能:

picker.allowsEditing=YES;

四、映像選取

當使用者選擇一個圖片之後,選取器的委託會通過 didFinishPickingImage 方法接到通知。代理會得到一個包含有該映像的 UIImage 對象,如果編輯功能開啟的話,還會得到一個包含了編輯屬性的NSDictionary。

設定選取器的 delegate ,就可以將一個委託賦予選取器:

picker.delegate =self;

在你的委託類中實現下面的方法,這樣當選取一個映像時,委託類就會得到通知:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{    /*添加處理選中映像代碼*/}

方法的參數包括一個指標,指向報告當前操作的映像選取器控制器,這樣你就可以在一個委託中處理多個選取器。參數還包括一個指向 UIImage 對象自身的指標,以及一個字典對象,其中包含有關於映像在螢幕上如何被縮放以及移動的資訊。

你可能在使用者取消映像選擇時也想要得到通知。要達到這一目的,要在代理中實現 imagePickerControllerDidCancel 方法。他會在取消選擇時被調用,以指向被取消的映像選取器指標為參數:

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{    /*添加代碼,處理選中映像又取消的情況*/}

最後附上代碼例子。UIImagePickerControllerDemo

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.