参考微信自定制相册功能
来源:互联网 发布:萌安安ann微博全数据 编辑:程序博客网 时间:2024/05/03 06:54
需要选择单张图片,可以直接调用imagePickerViewController
但是往往我们需要同时上传很多张
我们公司的系统要求是iOS8.0以上都支持,所以就基于AssetsLibrary自己做了一个
先气看代码麻烦可以直接看我GitHub上的demo,编码辛苦,觉得有用还望给个star以作鼓励
https://github.com/gofey/PhoneAlum
效果如下
必须导入
#import <AssetsLibrary/AssetsLibrary.h>
GFPhotoAlumController.m文件
先遍历所有相册分组
//self.assetLib是一个可变数组,将照片数大于0的ALAssetsGroup放进去
[self.assetLibenumerateGroupsWithTypes:ALAssetsGroupAllusingBlock:^(ALAssetsGroup *group,BOOL *stop) {
if (group) {
[group setAssetsFilter:[ALAssetsFilterallPhotos]];
if (group.numberOfAssets >0) {
[self.assetGroupArrayaddObject:group];
}
}else{
if (self.assetGroupArray.count > 0) {
[self.tableViewreloadData];
}else{
//no photo
}
}
} failureBlock:^(NSError *error) {
NSLog(@"enumerateGroupsError:%@",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 = [UIImageimageWithCGImage:group.posterImage];
cell.textLabel.text = [NSStringstringWithFormat:@"%@ %@", [groupvalueForProperty:ALAssetsGroupPropertyName],[NSStringstringWithFormat:@"(%ld)", (long)group.numberOfAssets]];
return cell;
GFPhotosController.m文件
由于系统ALAsset是没有这个照片是否被选中状态的,所以需要自己做一个
如下
@interface 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:NSEnumerationReverseusingBlock:^(ALAsset *result,NSUInteger index, BOOL *stop) {
if (result) {
[self.assetArrayaddObject:[GFAssetassetWithAsset:result]];
}else{
if (self.assetArray.count == 0) {
NSLog(@" no photo");
}
[self.collectionViewreloadData];
}
}];
将照片付给imageView
self.photoImgView.image = [UIImageimageWithCGImage:asset.asset.aspectRatioThumbnail];
当然这只是展示照片的主要代码,详细逻辑和内部实现,以及其他操作,请参考https://github.com/gofey/PhoneAlum
- 参考微信自定制相册功能
- 基于Photos.framework自定制相册swift
- 微信自带分享功能实现
- 微信功能系列-微商城定制开发示例
- 微信样式相册选择器
- 调取微信相册相机
- 微信浏览器点击图片使用手机相册查看大图功能.
- 蚂蚁分类信息系统5.8 定制开发增加微信快捷传图功能
- 微信定制分享问题解决
- Python自定制tail命令,tail -f 功能小解
- 微信开发示例参考
- 关于“微信订阅号/制作相册”
- 高仿QQ微信相册
- HTML5相册,网页,模板,微信,制作,
- 微信自媒体
- 微信定制开发怎么做?
- 定制微信分享朋友圈JS代码
- 【微信开发】定制消息推送
- Eclipse Maven工程报错:An error occurred while filtering resources
- ES6 -- 遍历器Iterator和for...of
- 设置和取消淘宝镜像
- Android SELinux相关介绍
- 51单片机实现智能小车的寻轨避障功能
- 参考微信自定制相册功能
- Tensorflow lesson 3---变量Variable
- 并查集
- 如何解决 code: 18446744073709550594的错误
- ICDAR2013文本检测算法的衡量方法(一)Evaluation Levels
- Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝、添加内容、修改内容、读取内容
- Dom’s width & height should be ready before init
- hiboCoder 1041 国庆出游 dfs+思维
- Java反射之java.beans包