創(chuàng)建工程項(xiàng)目和視圖控制器
目前累計(jì)服務(wù)客戶千余家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
創(chuàng)建一個(gè)single view工程項(xiàng)目,自動(dòng)創(chuàng)建一個(gè)ViewController試圖控制器。
創(chuàng)建并初始化UI控件
在ViewController.m創(chuàng)建并初始化UIImageView用于顯示獲取的圖片,UIButton及響應(yīng)事件。
設(shè)置宏定義、添加代理
判斷是否是iOS8以上版本系統(tǒng):
#define IOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] = 8.0 ? YES : NO)
調(diào)用相冊(cè)需要使用:
UIImagePickerControllerDelegate,UINavigationControllerDelegate代理,iOS7使用UIActionSheet需要添加UIActionSheetDelegate。
完善按鈕響應(yīng)事件
iOS8使用UIAlertController選擇獲取圖片方式;
iOS8使用UIAlertAction選擇獲取圖片方式。
添加自定義方法保存圖片到本地沙盒
選擇完成后調(diào)用。
獲取圖片緩存并顯示
完成示例
要允許app調(diào)用相機(jī),讀取相冊(cè)圖片。
使用系統(tǒng)相冊(cè)的時(shí)候,首先判斷是否有權(quán)限,沒有權(quán)限的話,可以彈出提示框。
相冊(cè)監(jiān)聽中的回調(diào)方法是在 子線程 中的,因此要改變UI布局的話,必須回到主線程
** 幾個(gè)常用的類 **
**PHAsset **: 代表照片庫(kù)中的一個(gè)資源,跟 ALAsset 類似,通過 PHAsset 可以獲取和保存資源。每個(gè)PHAsset就是一張圖片的詳細(xì)信息,包括圖片、位置、時(shí)間等。
** PHFetchOptions **: 獲取資源時(shí)的參數(shù),可以傳 nil,即使用系統(tǒng)默認(rèn)值。
** PHFetchResult **: 表示一系列的資源集合,也可以是相冊(cè)的集合。
** PHAssetCollection **: 表示一個(gè)相冊(cè)或者一個(gè)時(shí)刻,或者是一個(gè)智能相冊(cè)(系統(tǒng)提供的特定的一系列相冊(cè),例如:最近刪除,視頻列表,收藏等等)。
** PHImageManager **: 用于處理資源的加載,加載圖片的過程帶有緩存處理,可以通過傳入一個(gè) PHImageRequestOptions 控制資源的輸出尺寸等規(guī)格。
** PHImageRequestOptions **: 如上面所說,控制加載圖片時(shí)的一系列參數(shù)。
調(diào)用相機(jī)拍照并獲取圖片和打開系統(tǒng)相冊(cè)獲取圖片是我們經(jīng)常見到的常用功能。其實(shí)這些功能做起來十分簡(jiǎn)單,幾步即可。
在info.plist文件中添加對(duì)照相機(jī)和相冊(cè)獲取的權(quán)限,如下圖
初始化UIImagePickerController ,并添加相應(yīng)設(shè)置,如下
需要添加UIImagePickerControllerDelegate和UINavigationControllerDelegate這兩個(gè)代理,并在代理中實(shí)現(xiàn)相應(yīng)方法,如下
根據(jù)不同的需求設(shè)置類型即可,如下: