iOS學(xué)習(xí):調(diào)用相機(jī)和相冊(cè),選擇圖片上傳


今天在項(xiàng)目中要實(shí)現(xiàn)一個(gè)上傳頭像功能,點(diǎn)擊修改頭像行彈出拍照或者從相冊(cè)選擇來設(shè)置頭像。


實(shí)現(xiàn)效果如下圖:



iOS有兩種的拍照和視頻的方式:

方法A:直接使用UIImagePickerController,這個(gè)類提供了一個(gè)簡(jiǎn)單便捷的拍照與選擇圖片庫里圖片的功能。

方法B:另一種是通過AVFoundation.framework框架完全自定義拍照的界面和選擇圖片庫界面。


一、使用UIImagePickerController的具體操作如下:

提示:首先對(duì)應(yīng)的viewController必須遵循以下協(xié)議:<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>

1、調(diào)用接口前,我們需要先判斷當(dāng)前設(shè)備是否支持UIImagePickerController,用isSourceTypeAvailable:來判斷是否可用。我直接在點(diǎn)擊修改頭像后調(diào)用chooseImage方法進(jìn)行判斷:

判斷是否支持相機(jī)??

? ? ? UIActionSheet是在iOS彈出的選擇按鈕項(xiàng),可以添加多項(xiàng),并為每項(xiàng)添加點(diǎn)擊事件,當(dāng)不支持相機(jī)時(shí)不顯示拍照選項(xiàng)。cancelButtonTitle 和 destructiveButtonTitle是系統(tǒng)自動(dòng)的兩項(xiàng),otherButtonTitles是自己定義的項(xiàng),注意,最后一個(gè)參數(shù)要是nil。


2、實(shí)現(xiàn)相應(yīng)的Action Sheet的選項(xiàng)的事件,對(duì)應(yīng)UIActionSheetDelegate中的 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 方法:

ActionSheetDelegate事件

3、實(shí)現(xiàn)ImagePicker delegate 事件,獲得已拍攝或者選擇的圖片,最后調(diào)用寫好的upload方法將圖片上傳到服務(wù)器。


選擇獲取圖片類型

4、這里調(diào)用相機(jī)是系統(tǒng)自帶的,默認(rèn)提示都為英文,可以修改英文標(biāo)題為中文,如cancel換為取消等。直接在項(xiàng)目的supporting files目錄中的Info.plist中設(shè)置Localization native development region為China.


提示文字中英文切換

5、保存圖片

保存圖片至沙盒

6、點(diǎn)擊圖片預(yù)覽,放大縮小帶動(dòng)畫。

圖片預(yù)覽


二、通過AVFoundation.framework框架完全自定義



待補(bǔ)充.....



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容