需要選擇單張,可以直接呼叫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...