聲明 歡迎轉載,但是請尊重作者勞動成果,轉載請保留此框內聲明,謝謝。 文章出處: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