參考微信自定製相簿功能

2021-07-31 21:19:25 字數 2631 閱讀 8408

需要選擇單張,可以直接呼叫imagepickerviewcontroller

但是往往我們需要同時上傳很多張

我們公司的系統要求是ios8.0以上都支援,所以就基於

assetslibrary自己做了乙個

先氣看**麻煩可以直接看我github上的demo,編碼辛苦,覺得有用還望給個star以作鼓勵

效果如下

必須匯入

#import

gfphotoalumcontroller.m檔案

先遍歷所有相簿分組 

//self

.assetlib是乙個可變陣列,將**數大於0的alassetsgroup放進去 [

self

.assetlib

enumerategroupswithtypes

:alassetsgroupall

usingblock

:^(alassetsgroup

*group,

bool

*stop)

}else

else}}

failureblock

:^(nserror

*error) ];

在tableview的cell中顯示

uitableviewcell

*cell =       [tableview 

dequeuereusablecellwithidentifier

:_reuseidentifier

];alassetsgroup

*group =

self

.assetgrouparray

[indexpath.

row];

cell.

imageview

.clipstobounds

= yes

;cell.

imageview

.contentmode

= uiviewcontentmodescaleaspectfill

;cell.

imageview

.image

= [uiimage

imagewithcgimage

:group.

posterimage];

cell.

textlabel

.text

= [nsstring

stringwithformat

:@"%@    %@"

, [group

valueforproperty

:alassetsgrouppropertyname

],[nsstring

stringwithformat

:@"(%ld)"

, (long

)group.

numberofassets

]];return

cell;

gfphotoscontroller.m檔案

由於系統alasset是沒有這個**是否被選中狀態的,所以需要自己做乙個

如下@inte***ce

gfasset :

nsobject

@property

(nonatomic

)bool

isselected;

@property

(nonatomic

,strong

)alasset

*asset;

- (gfasset

*)initwithasset:(

alasset

*)asset;

+ (gfasset

*)assetwithasset:(

alasset

*)asset;

@end

選擇的group

遍歷group,獲取gfasset

[group

enumerateassetswithoptions

:nsenumerationreverse

usingblock

:^(alasset

*result,

nsuinteger

index,

bool

*stop)

else

[self

.collectionview

reloaddata];}

}];將**付給imageview

self

.photoimgview

.image

= [uiimage

imagewithcgimage

:asset.

asset

.aspectratiothumbnail

];當然這只是展示**的主要**,詳細邏輯和內部實現,以及其他操作,請參考

微信自定義選單

1.首先實現我們寫乙個index方法,將資料庫讀出來的資料進行格式轉換,與二級選單的格式相同,foreach data as k v this assign mpinfo mp this assign list data this display data i post.data foreach d...

微信自定義分享

1 先獲取 access token 的值,並將 access token 值儲存到資料庫的,也可以利用快取等,看個人習慣 public function getaccesstoken else if res else return data new else return error else r...

微信自定義分享

1 先獲取 access token 的值,並將 access token 值儲存到資料庫的,也可以利用快取等,看個人習慣 public function getaccesstoken else if res else return data new else return error else r...