iOS-個人整理14 - UIImagePickerController,照片選擇器

一、UIImagePickerController

這個文章大部分摘別人的杀餐,自己總結下來更方便用一點

UIImagePickerController是系統(tǒng)提供的用來獲取圖片和視頻的接口
獲取的途徑為相機,圖庫顶岸,相冊
分為以下幾個步驟:

  1. 初始化UIImagePickerController 類;
  2. 設置UIImagePickerController 實例的數(shù)據(jù)來源類型(下面解釋)燕侠;
  3. 設置代理凸主;
  4. 如果需要做圖片修改的話設置allowsEditing =yes鸥拧。
    數(shù)據(jù)來源的類型有三種
enum {  
   UIImagePickerControllerSourceTypePhotoLibrary ,//來自圖庫  
   UIImagePickerControllerSourceTypeCamera ,//來自相機  
   UIImagePickerControllerSourceTypeSavedPhotosAlbum //來自相冊  
};  

用之前要檢測設備是否支持


if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])  
   {  
       NSLog(@"支持相機");  
   }  
   if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])  
   {  
       NSLog(@"支持圖庫");  
   }  
   if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])  
   {  
       NSLog(@"支持相片庫");  
   }  

二、UIImagePickerController屬性詳解:

    //指定使用照相機模式,可以指定使用相冊/照片庫    
imagepicker.sourceType = UIImagePickerControllerSourceTypeCamera;

    //設置當拍照完或在相冊選完照片后累榜,是否跳到編輯模式進行圖片剪裁营勤。只有當showsCameraControls屬性為true時才有效果    
imagepicker.allowsEditing = YES;

    //設置拍照時的下方的工具欄是否顯示,如果需要自定義拍攝界面,則可把該工具欄隱藏   
 imagepicker.showsCameraControls  = YES;

    //設置使用后置攝像頭葛作,可以使用前置攝像頭    
imagepicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;    
//設置閃光燈模式    
/*     typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {     UIImagePickerControllerCameraFlashModeOff  = -1,     UIImagePickerControllerCameraFlashModeAuto = 0,     UIImagePickerControllerCameraFlashModeOn   = 1     };     */    
imagepicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;    
//設置相機支持的類型寿羞,拍照和錄像   
 imagepicker.mediaTypes = @[(NSString*)kUTTypeImage,(NSString*)kUTTypeMovie];

    //設置拍攝時屏幕的view的transform屬性,可以實現(xiàn)旋轉赂蠢,縮放功能   
// imagepicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI*45/180);   
// imagepicker.cameraViewTransform = CGAffineTransformMakeScale(1.5, 1.5);    
//所有含有cameraXXX的屬性都必須要sourceType是UIImagePickerControllerSourceTypeCamera時設置才有效果绪穆,否則會有異常

 //設置UIImagePickerController的代理   
 imagepicker.delegate = self;
-(void)showCamera{    //用模態(tài)方式呈現(xiàn)imagepicker,這個方法之后就會跳到對應的源位置虱岂,相機或者相冊圖庫    [self presentModalViewController:imagepicker animated:YES];}

代理方法
當用戶選取完成后調用霞幅;

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;  

當用戶取消選取時調用;


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

最后是我自己的實現(xiàn)量瓜,一般也就這么用了司恳,點擊相框進入相冊,選一張圖點choose绍傲,出來后相框就是選擇的圖了

#import "ThirdViewController.h"  
  
//簽訂協(xié)議  
@interface ThirdViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate>  
  
@property (nonatomic,retain)UIImageView *myImageView;  
  
@end  
  
@implementation ThirdViewController  
  
- (void)viewDidLoad {  
    [super viewDidLoad];  
      
    //創(chuàng)建一塊imageView  
    _myImageView = [[UIImageView alloc]initWithFrame:CGRectMake((414-300)/2, 200, 300, 300)];  
    _myImageView.backgroundColor = [UIColor whiteColor];  
    //打開交互  
    _myImageView.userInteractionEnabled = YES;  
    [self.view addSubview:_myImageView];  
      
    //添加一個手勢  
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(selectImage:)];  
    [_myImageView addGestureRecognizer:tapGesture];  
}  
  
//實現(xiàn)手勢的方法扔傅,進入相冊  
-(void)selectImage:(UIButton*)sender  
{   //創(chuàng)建ImagePickController  
    UIImagePickerController *myPicker = [[UIImagePickerController alloc]init];  
      
    //創(chuàng)建源類型  
    UIImagePickerControllerSourceType mySourceType = UIImagePickerControllerSourceTypePhotoLibrary;  
      
    myPicker.sourceType = mySourceType;  
      
    //設置代理  
    myPicker.delegate = self;  
    //設置可編輯  
    myPicker.allowsEditing = YES;  
    //通過模態(tài)的方式推出系統(tǒng)相冊  
    [self presentViewController:myPicker animated:YES completion:^{  
        NSLog(@"進入相冊");  
    }];  
   
}  
#pragma mark -- 實現(xiàn)imagePicker的代理方法  
  
 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info  
{  
    //取得所選取的圖片,原大小,可編輯等,info是選取的圖片的信息字典  
    UIImage *selectImage = [info objectForKey:UIImagePickerControllerEditedImage];  
      
    //設置圖片進相框  
    self.myImageView.image = selectImage;  
    [picker dismissViewControllerAnimated:YES completion:^{  
        NSLog(@"模態(tài)返回") ;  
    }];  
}  
  
@end  

效果如下
中間有個相框烫饼,點一下進入相冊猎塞,在相冊中選擇一張圖片,點choose杠纵,出來相框的圖片就變了


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末荠耽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子比藻,更是在濱河造成了極大的恐慌铝量,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件银亲,死亡現(xiàn)場離奇詭異慢叨,居然都是意外死亡,警方通過查閱死者的電腦和手機务蝠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門拍谐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人馏段,你說我怎么就攤上這事轩拨。” “怎么了院喜?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵亡蓉,是天一觀的道長。 經(jīng)常有香客問我够坐,道長寸宵,這世上最難降的妖魔是什么崖面? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮梯影,結果婚禮上巫员,老公的妹妹穿的比我還像新娘。我一直安慰自己甲棍,他們只是感情好简识,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著感猛,像睡著了一般七扰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陪白,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天颈走,我揣著相機與錄音,去河邊找鬼咱士。 笑死立由,一個胖子當著我的面吹牛,可吹牛的內容都是我干的序厉。 我是一名探鬼主播锐膜,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弛房!你這毒婦竟也來了道盏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤文捶,失蹤者是張志新(化名)和其女友劉穎荷逞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拄轻,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡颅围,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恨搓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡筏养,死狀恐怖斧抱,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情渐溶,我是刑警寧澤辉浦,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站茎辐,受9級特大地震影響宪郊,放射性物質發(fā)生泄漏掂恕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一弛槐、第九天 我趴在偏房一處隱蔽的房頂上張望懊亡。 院中可真熱鬧,春花似錦乎串、人聲如沸店枣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸯两。三九已至,卻和暖如春长豁,著一層夾襖步出監(jiān)牢的瞬間钧唐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工匠襟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逾柿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓宅此,卻偏偏與公主長得像机错,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子父腕,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫弱匪、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,107評論 4 62
  • 理論 技術開發(fā)類論文只需要客觀地說明理論依據(jù)和技術實現(xiàn)及其價值論文結構如下: 簡介 相關研究 系統(tǒng)架構(框圖) 關...
    找尋美好閱讀 1,274評論 0 1
  • 在30平幽暗的房間里璧亮,一片安寧萧诫,寂靜無聲… 每一次的呼吸都帶動著主人公的生命,在那無聲的世界枝嘶,只有夢想帘饶,錯!是夢群扶,...
    散記阿亮閱讀 304評論 1 1
  • 我曾經(jīng)在北京海底撈王府井15分店做過服務員3個月及刻。 剛入職新員工,沒有所謂"五險一金"竞阐。 目前缴饭,去海底撈應聘是先要...
    358e03f41bd0閱讀 40,107評論 0 0