UIImagePickerController---iOS-Apple蘋果官方文檔翻譯

//本系列全部開發文檔翻譯連接地址:iOS7開發-Apple蘋果iPhone開發Xcode官方文檔翻譯PDF下載地址html

 //轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3495890.html多線程

UIImagePickerController
1.+(BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;                 檢查指定源是否在設備上可用。
//檢查照片源是否可用
[UIImagePickerController
isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]

技術博客http://www.cnblogs.com/ChenYilong/   新浪微博http://weibo.com/luohanchenyilong  



2.allowsEditing 默認NO
是否容許編輯
容許編輯.
[imagePicker setAllowsEditing:YES];
3. videoMaximumDuration

設置UIImagePicker的最大視頻持續時間.默認10分鐘
4. + availableMediaTypesForSourceType: // 指定源可用的媒體種類
 //得到相機模式下支持的媒體類型
NSArray* availableMediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
5. sourceType
設置UIImagePicker照片源類型,默認有3種。
照片源類型
 
 UIImagePickerControllerSourceTypeCamera           
 照相機
 UIImagePickerControllerSourceTypePhotoLibrary     
 照片庫(經過同步存放的,用戶不能刪除)
 UIImagePickerControllerSourceTypeSavedPhotosAlbum 
 保存的照片(經過拍照或者截屏保存的,用戶能夠刪除)

6.UIImagePicker使用步驟:

    檢查指定源是否可用. isSourceTypeAvailable:方法.
    檢查可用媒體(視頻仍是隻能是圖片) availableMediaTypesForSourceType:方法.
    設置界面媒體屬性mediaTypes property.
    顯示界面使用presentViewController:animated:completion:方法.iPad中是popover形式.須要確保sourceType有效.
    相關操做,移除視圖.


若是想建立一個徹底自定義界面的image picker來瀏覽圖片,使用 Assets Library Framework Reference中的類. (AV Foundation Programming Guide 中的 「Media Capture and Access to Camera」 )


async

 //轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3495890.htmlide


 


7.設置源


    + availableMediaTypesForSourceType: // 指定源可用的媒體種類
    + isSourceTypeAvailable: // 指定源是否在設備上可用
      sourceType

// 運行相關接口前須要指明源類型.必須有效,不然拋出異常. picker已經顯示的時候改變這個值,picker會相應改變來適應.默認 UIImagePickerControllerSourceTypePhotoLibrary.


8.設置picker屬性


      allowsEditing //是否可編輯
      delegate
      mediaTypes

// 指示picker中顯示的媒體類型.設置每種類型以前應用availableMediaTypesForSourceType:檢查一下.若是爲空或者array中類型都不可用,會發生異常.默認 kUTTypeImage, 只能顯示圖片.

    

9.video選取參數


      videoQuality //視頻拍攝選取時的編碼質量.只有mediaTypes包含kUTTypeMovie時有效.
      videoMaximumDuration //秒,video最大記錄時間,默認10分鐘.只用當mediaTypes包含kUTTypeMovie時有效.


10.自定義界面


      showsCameraControls

// 指示 picker 是否顯示默認的camera controls.默認是YES,設置成NO隱藏默認的controls來使用自定義的overlay view.(從而能夠實現多選而不是選一張picker就dismiss了).只有 UIImagePickerControllerSourceTypeCamera源有效,不然NSInvalidArgumentException異常.

      cameraOverlayView

//自定義的用於顯示在picker之上的view.只有當源是UIImagePickerControllerSourceTypeCamera時有效.其餘時候使用拋出NSInvalidArgumentException異常.

      cameraViewTransform

//預先動畫.隻影響預先圖像,對自定義的overlay view和默認的picker無效.只用當picker的源是UIImagePickerControllerSourceTypeCamera時有效,不然NSInvalidArgumentException異常.

post

 //轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3495890.html動畫

11.選取媒體


    – takePicture

//使用攝像頭選取一個圖片。自定義overlay能夠多選。已經有圖片正在選取是調用無效,必需要等delegate收到 imagePickerController:didFinishPickingMediaWithInfo:消息後才能再次選取。非UIImagePickerControllerSourceTypeCamera源會致使異常。

    – startVideoCapture

    – stopVideoCapture

//結束視頻選取,以後系統調用delegate的 imagePickerController:didFinishPickingMediaWithInfo:方法。


12.設置攝像頭

      cameraDevice //使用的鏡頭(默認後置的)
    + isCameraDeviceAvailable: // 攝像設備是否可用.
    + availableCaptureModesForCameraDevice: // 設備可用的選取模式
      cameraCaptureMode //相機捕獲模式
      cameraFlashMode //閃光燈模式(默認自動)
    + isFlashAvailableForCameraDevice: // 是否有閃光能力


13.UIImagePickerControllerDelegate
使用UIImageWriteToSavedPhotosAlbum保存圖像, UISaveVideoAtPathToSavedPhotosAlbum保存視頻. 4.0後使用writeImageToSavedPhotosAlbum:metadata:completionBlock:保存元數據.

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

//包含選擇的圖片或者一個視頻的URL,詳見「Editing Information Keys.」

//若是是設置可編輯屬性,那麼picker會預顯示選中的媒體,編輯後的與初始的都會保存在info中.

    – imagePickerControllerDidCancel:
    – imagePickerController:didFinishPickingImage:editingInfo://Deprecated in iOS 3.0

NSString *const UIImagePickerControllerMediaType;// 媒體類型
NSString *const UIImagePickerControllerOriginalImage;// 原始未編輯的圖像
NSString *const UIImagePickerControllerEditedImage;// 編輯後的圖像
NSString *const UIImagePickerControllerCropRect;// 源圖像可編輯(有效?)區域
NSString *const UIImagePickerControllerMediaURL;// 視頻的路徑
NSString *const UIImagePickerControllerReferenceURL;// 原始選擇項的URL
NSString *const UIImagePickerControllerMediaMetadata;// 只有在使用攝像頭而且是圖像類型的時候有效.包含選擇圖像信息的字典類型



ui

 //轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3495890.html編碼

14. UIImagePickerController小例子
UIImagePickerController的代理須要遵照這兩個協議.<UIImagePickerControllerDelegate, UINavigationControllerDelegate]] > 

#pragma mark
 選擇照片
- (void)selectPhoto
{
   
 // 1. 首先判斷照片源是否可用
   
 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
       
       
 // 0)實例化控制器
       
 UIImagePickerController *picker = [[UIImagePickerController alloc]init];
       
 // 1)設置照片源
        [picker
 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
       
       
 // 2) 設置容許修改
        [picker
 setAllowsEditing:YES];
       
 // 3) 設置代理
        [picker
 setDelegate:self];
       
 // 4) 顯示控制器
        [
self presentViewController:picker animated:YES completion:nil];
       
    }
 else {
       
 NSLog(@"照片源不可用");
    }
   
}

#pragma mark - imagePicker代理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   
 UIImage *image = info[@"UIImagePickerControllerEditedImage"];
    [
_imageButton setImage:image forState:UIControlStateNormal];
   
   
 // 關閉照片選擇器
    [
self dismissViewControllerAnimated:YES completion:nil];
   
   
 // 須要將照片保存至應用程序沙箱,因爲涉及到數據存儲,同時與界面無關
   
 // 可使用多線程來保存圖像
   
 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
       
       
 // 保存圖像
       
 // 1. 取圖像路徑 技術博客http://www.cnblogs.com/ChenYilong/   新浪微博http://weibo.com/luohanchenyilong  
       
 NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
       
 NSString *imagePath = [docs[0]stringByAppendingPathComponent:@"abc.png"];
       
       
 // 2. 轉換成NSData保存
       
 NSData *imageData = UIImagePNGRepresentation(image);
        [imageData
 writeToFile:imagePath atomically:YES];
    });
}
 atom

本文對應pdf文檔下載連接,猛戳—>:https://www.evernote.com/shard/s227/sh/cdc77926-ff83-4960-bb57-52bf1da08516/6cb29b4a2c5407b0df0c59aeae237fd6url

 技術博客http://www.cnblogs.com/ChenYilong/   新浪微博http://weibo.com/luohanchenyilong

 //轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3495890.html

本系列全部開發文檔翻譯連接地址:iOS7開發-Apple蘋果iPhone開發Xcode官方文檔翻譯PDF下載地址

相關文章
相關標籤/搜索