IOS開發—自訂多選相簿
自訂多選相簿主要思路匯入AssetsLibrary架構 從資產庫中擷取擷取資源群組【0】,過濾【1】照片後在列表中顯示組。 點擊資源群組進入對應的相簿中,擷取組中的所有照片資源【2】
【0】擷取資源群組[_assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if (group) { [_assetsArray addObject:group]; [_tableView reloadData]; } } failureBlock:^(NSError *error) { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@提示 message:@相簿擷取失敗 delegate:self cancelButtonTitle:@取消 otherButtonTitles: nil]; [alert show]; }];
【1】過濾[_assetsGroup setAssetsFilter:[ALAssetsFilter allPhotos]];
【2】擷取照片資源- (void)getImages{ _thumbnailMeasure = (SCREEN_WIDTH-(self.numberOfImageEachRow+1)*PHOTO_DEFAULT_MARGIN)/self.numberOfImageEachRow; CGRect frame = CGRectMake(0, 0, _thumbnailMeasure, _thumbnailMeasure); [self.assetsGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { AssetView *assetView = [[AssetView alloc]initWithAsset:result WithFrame:frame]; assetView.delegate = self; [_assetsArray addObject:assetView]; } }];}
相關操作
擷取資源群組名
[_assetsGroup valueForProperty:ALAssetsGroupPropertyName];
擷取資源群組的海報縮圖
[UIImage imageWithCGImage:_assetsGroup.posterImage];
擷取照片資源的正方形縮圖
[UIImage imageWithCGImage:_asset.thumbnail];
擷取照片資源完全解析度的映像(先封裝映像資源)
[[asset defaultRepresentation] fullResolutionImage]];
擷取資源類型
[asset valueForProperty:ALAssetPropertyType];