zoukankan      html  css  js  c++  java
  • iOS

      1 #import <AssetsLibrary/AssetsLibrary.h>
      3 
      4 
      5 /**
      6  *  ALAssetsLibrary.h 代表资源库(所有的视频,照片)
      7     ALAssetsGroup.h   代表资源库中的相册
      8     ALAsset.h         代表相册中一个视频或者一张照片
      9     ALAssetRepresentation.h 代表一个资源的描述,可以获取到原始图片
     10  */
     11 
     12 @interface ViewController ()
     13 
     14 @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
     15 
     16 @property (nonatomic,strong)NSMutableArray *array;
     17 @end
     18 
     19 @implementation ViewController{
     20 
     21     ALAssetsLibrary *library;
     22 
     23 }
     24 
     25 - (void)viewDidLoad {
     26     [super viewDidLoad];
     27     
     28     //创建可变数组,存储资源文件
     29     _array = [NSMutableArray array];
     30     
     31     //创建资源库,用于访问相册资源
     32     library = [[ALAssetsLibrary alloc] init];
     33     
     34     //遍历资源库中所有的相册,有多少个相册,usingBlock会调用多少次
     35     [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
     36         
     37         //如果存在相册,再遍历
     38         if (group) {
     39             
     40             //遍历相册中所有的资源(照片,视频)
     41            [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
     42                
     43                /*
     44                 资源的索引
     45                if (index == 2) {
     46                    
     47                 //停止遍历
     48                    *stop = YES;
     49                }
     50                 */
     51                
     52                if (result) {
     53                    //将资源存储到数组中
     54                    [_array addObject:result];
     55                }
     56                
     57            }];
     58         }
     59         
     60         //刷新_collectionView reloadData;
     61          [_collectionView reloadData];
     62         
     63     } failureBlock:^(NSError *error) {
     64         
     65         NSLog(@"访问失败");
     66     }];
     67     
     68 }
     69 
     70 #pragma mark -UICollectionViewDelegate
     71 
     72 //行的个数
     73 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
     74 
     75 
     76     return _array.count;
     77 
     78 }
     79 
     80 //创建UICollectionViewCell
     81 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
     82     
     83     //如果单元格是在故事版中画出来的,不需要注册,需要在单元格中指定标识符
     84     UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
     85     
     86     //取得图片视图
     87     UIImageView *imgView = (UIImageView *)[cell.contentView viewWithTag:1];
     88     
     89     //取出对应的资源数据
     90      ALAsset *result =_array[indexPath.row];
     91     
     92     //获取到缩略图
     93     CGImageRef cimg = [result thumbnail];
     94     
     95     //转换为UIImage
     96     UIImage *img = [UIImage imageWithCGImage:cimg];
     97 
     98     //显示图片
     99     imgView.image = img;
    100     
    101     /**
    102      *  获取到原始图片
    103      ALAssetRepresentation *presentation = [result defaultRepresentation];
    104     
    105     CGImageRef resolutionImg = [presentation fullResolutionImage];
    106      */
    107 
    108     return cell;
    109 
    110 }
    111 
    112 //单元格大小
    113 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    114 
    115     return CGSizeMake(70, 70);
  • 相关阅读:
    Java实现“睡排序”——线程池Executors的使用
    浅谈HashMap与线程安全 (JDK1.8)
    Ubuntu 16 Java Develop环境快速搭建
    Spring Boot在反序列化过程中:jackson.databind.exc.InvalidDefinitionException cannot deserialize from Object value
    Java 8 – Map排序
    vue指令优化网络图片加载速度
    如何实现小于12px的字体效果
    两种以上方式实现已知或者未知宽度的垂直水平居中
    C# winform窗体间传值(使用委托或事件)
    C#栈Stack的使用
  • 原文地址:https://www.cnblogs.com/mafeng/p/5830693.html
Copyright © 2011-2022 走看看