Swift中實(shí)現(xiàn)相冊的多選

在iOS中實(shí)現(xiàn)相冊多選的思路是先從資源中拿出相片,然后放在collectionView中(也可以自己自定義隨便的view,容器能放圖就行)。然后實(shí)現(xiàn)在collectionView中多選就可以了。

要從系統(tǒng)中取得照片資源,需要用到 AssetsLibrary.framework 。它里面有取照片視頻等資源的方法。

關(guān)于讀取這些資源的方法,請前往ALAsset,ALAssetsLibrary,ALAssetsgroup常見屬性及用法

這個應(yīng)該是比較詳細(xì)的了。

我自己也根據(jù)這個東西自己做了個多選相冊的,拋磚引玉。希望大家給出更好的作品。效果如下:

相冊多選

項(xiàng)目源碼:https://github.com/smalldu/swiftPickMore

在做這個的時候,遇到一個坑,在這里和大家分享下。

非托管對象(Unmanaged Objects)
當(dāng) Swift 導(dǎo)入 unannotated 的APIs時,編譯器將不會自動地對返回的 Core Foundation 對象進(jìn)行內(nèi)存管理托管。Swift 將這些返回的 Core Foundation 對象封閉在一個Unmanaged結(jié)構(gòu)中。那些間接返回 Core Foundation 的對象也是非托管的。

而我這里就用到一個ALAsset對象的aspectRatioThumbnail方法返回Unmanaged對象,所以在這里使用takeUnretainedValue() 這個方法將它轉(zhuǎn)換為內(nèi)存管理的對象,剛開始一直用takeRetainedValue()一只報(bào)野指針 坑了好久。?,F(xiàn)在代碼里還有一處沒有改好像。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容