首页 > 代码库 > [原]iOS7.1获取图库所有照片的方法封装
[原]iOS7.1获取图库所有照片的方法封装
今天一直在弄这个东西,各种度,网上有不少这样的例子和讲解,但是就是没有正常获取出来。。很郁闷!
后来终于各种尝试,为了让小伙伴们少折腾会,特写出此简单的类。
技术能力有限,多有不足,还请多多指教!
简单类快捷入口:
链接: http://pan.baidu.com/s/1hqvJLru 密码: 1jd0
//出处:http://www.cnblogs.com/madordie///// 声明:写此类时候只为了获取图库中的图片。由于真机不在手边,只在模拟器上测试(iOS7.1)// 如需要获得其他视频之类的可以自行更改fillAssetGroups函数////// 本地照片管理// (单例模式)// 用法://JGPhotoAlbumManager *manager = [JGPhotoAlbumManager shared];//[manager setSaveAllPhotos:^(NSArray *images) {// if (!_tableData) {// _tableData = http://www.mamicode.com/[[NSMutableArray alloc] init];>// }// [_tableData removeAllObjects];// [_tableData addObjectsFromArray:images];// [_tableView reloadData];//}];//// cell 填充://ALAsset *asset = _tableData[indexPath.row];//[cell.imageView setImage:[asset fastGetThumbnailImage]];//注://fastGetThumbnailImage为自定义类别,见#import "ALAsset+JGFastGetPhoto.h"//
关键代码:
//如果需要获取别的更改下面的addObject位置#pragma mark - 填充 _assetGroups- (void)fillAssetGroups { ALAssetsLibrary *assetsLibrary = [JGPhotoAlbumManager sharedAssetsLibrary];//生成整个photolibrary句柄的实例 [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {//获取所有group if (group) { [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {//从group里面 NSString* assetType = [result valueForProperty:ALAssetPropertyType]; if ([assetType isEqualToString:ALAssetTypePhoto]) { NSLog(@"Photo"); [_assetGroups addObject:result]; }else if([assetType isEqualToString:ALAssetTypeVideo]){ NSLog(@"Video"); }else if([assetType isEqualToString:ALAssetTypeUnknown]){ NSLog(@"Unknow AssetType"); } NSDictionary *assetUrls = [result valueForProperty:ALAssetPropertyURLs]; NSUInteger assetCounter = 0; for (NSString *assetURLKey in assetUrls) { NSLog(@"Asset URL %lu = %@",(unsigned long)assetCounter,[assetUrls objectForKey:assetURLKey]); } NSLog(@"Representation Size = %lld",[[result defaultRepresentation]size]); }]; } else { //stop dispatch_async(dispatch_get_main_queue(), ^(void) { _saveAllPhotos(_assetGroups); }); } } failureBlock:^(NSError *error) { NSLog(@"Enumerate the asset groups failed."); }];}
@interface ALAsset (JGFastGetPhoto)//图片URL- (NSString *)fastGetURLString;- (NSURL *)fastGetURL;//缩略图- (UIImage *)fastGetThumbnailImage;//全屏图- (UIImage *)fastGetFullScreenImage;//高清图- (UIImage *)fastGetFullResolutionImage;//获取时间- (NSString *)fastGetDataString;//缩略图- (UIImage *)fastGetThumbnailImage { CGImageRef ref = [self thumbnail]; return [UIImage imageWithCGImage:ref];}
[原]iOS7.1获取图库所有照片的方法封装
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。