IOS打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片實(shí)例詳解
IOS打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片
最近正好項(xiàng)目里面要集成“打開(kāi)照相機(jī)與本地相冊(cè)選擇圖片”的功能,今天就在這邊給大家寫(xiě)一個(gè)演示程序;打開(kāi)相機(jī)拍攝后或者在相冊(cè)中選擇一張照片,然后將它顯示在界面上。好了廢話不多說(shuō),因?yàn)楸容^簡(jiǎn)單直接上源碼。
首先,我們?cè)陬^文件中添加需要用到的actionSheet控件,顯示圖片的UIImageView控件,并且加上所需要的協(xié)議
#import <UIKit/UIKit.h> @interface ImagePickerViewController : UIViewController<UIImagePickerControllerDelegate,UIActionSheetDelegate,UINavigationControllerDelegate> @property (strong, nonatomic) IBOutlet UIImageView *headImage; @property (strong, nonatomic) UIActionSheet *actionSheet; - (IBAction)clickPickImage:(id)sender; @end
通過(guò)點(diǎn)擊我設(shè)置在界面中的按鈕來(lái)呼出actionSheet控件,來(lái)選擇相應(yīng)的操作拍照或是在相冊(cè)中選擇相片,代碼如下:
// // ImagePickerViewController.m // testAuto // // Created by silicon on 15/5/9. // Copyright (c) 2015年 silicon. All rights reserved. // #import "ImagePickerViewController.h" @interface ImagePickerViewController () @end @implementation ImagePickerViewController @synthesize actionSheet = _actionSheet; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /** @ 調(diào)用ActionSheet */ - (void)callActionSheetFunc{ if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"選擇圖像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"從相冊(cè)選擇", nil nil]; }else{ self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"選擇圖像" delegate:self cancelButtonTitle:@"取消"destructiveButtonTitle:nil otherButtonTitles:@"從相冊(cè)選擇", nil nil]; } self.actionSheet.tag = 1000; [self.actionSheet showInView:self.view]; } // Called when a button is clicked. The view will be automatically dismissed after this call returns - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ if (actionSheet.tag == 1000) { NSUInteger sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // 判斷是否支持相機(jī) if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { switch (buttonIndex) { case 0: //來(lái)源:相機(jī) sourceType = UIImagePickerControllerSourceTypeCamera; break; case 1: //來(lái)源:相冊(cè) sourceType = UIImagePickerControllerSourceTypePhotoLibrary; break; case 2: return; } } else { if (buttonIndex == 2) { return; } else { sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; } } // 跳轉(zhuǎn)到相機(jī)或相冊(cè)頁(yè)面 UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES; imagePickerController.sourceType = sourceType; [self presentViewController:imagePickerController animated:YES completion:^{ }]; } } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissViewControllerAnimated:YES completion:^{ }]; UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; self.headImage.image = image; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ - (IBAction)clickPickImage:(id)sender { [self callActionSheetFunc]; } @end
代碼比較簡(jiǎn)單,也容易理解,運(yùn)行的效果如下:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
IOS 中動(dòng)畫(huà)的暫停與繼續(xù)播放的詳解
這篇文章主要介紹了IOS 中動(dòng)畫(huà)的暫停與繼續(xù)播放的詳解的相關(guān)資料,希望通過(guò)本文大家能理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09淺談iOS開(kāi)發(fā)如何適配暗黑模式(Dark Mode)
這篇文章主要介紹了淺談iOS開(kāi)發(fā)如何適配暗黑模式(Dark Mode),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09ios開(kāi)發(fā)Flutter構(gòu)建todo?list應(yīng)用
這篇文章主要為大家介紹了ios開(kāi)發(fā)Flutter構(gòu)建todo?list應(yīng)用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09iOS開(kāi)發(fā)實(shí)現(xiàn)抽屜效果
這篇文章主要為大家詳細(xì)介紹了iOS開(kāi)發(fā)實(shí)現(xiàn)抽屜效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08iOS 高效的分頁(yè)加載實(shí)現(xiàn)示例
本篇文章主要介紹了iOS 高效的分頁(yè)加載實(shí)現(xiàn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10iOS實(shí)現(xiàn)動(dòng)態(tài)的開(kāi)屏廣告示例代碼
啟動(dòng)圖是在iOS開(kāi)發(fā)過(guò)程中必不可少的一個(gè)部分,很多app在啟動(dòng)圖之后會(huì)有一張自定義的開(kāi)屏廣告圖,但是有的時(shí)候需要讓啟動(dòng)圖看起來(lái)就是一個(gè)廣告,而且還要這個(gè)廣告里面會(huì)動(dòng),iOS的啟動(dòng)圖只能是靜態(tài)的,而且固定,為了實(shí)現(xiàn)看起來(lái)的動(dòng)畫(huà)效果,只能進(jìn)行偽造了。下面來(lái)一起看看2016-09-09簡(jiǎn)介iOS開(kāi)發(fā)中應(yīng)用SQLite的模糊查詢(xún)和常用函數(shù)
這篇文章主要介紹了iOS開(kāi)發(fā)中應(yīng)用SQLite的模糊查詢(xún)和常用函數(shù),SQLite是一個(gè)可作嵌入式的數(shù)據(jù)庫(kù)非常適合小型應(yīng)用使用,需要的朋友可以參考下2015-12-12