ios Objective-c 自制相册 显示所有图片和视频 有提到解决UICollectionVIew布局混乱

这篇博客介绍了如何在Objective-C中创建自定义相册,展示所有图片和视频,同时关注了在实现过程中遇到的UICollectionView布局混乱问题,并提供了解决方案,包括设置Privacy权限和自定义UICollectionViewController。

1.Privacy - Photo Library Usage Description 权限写入info.plist

2.自定义UICollectionViewController

#import <UIKit/UIKit.h>
#import <Photos/Photos.h>
#import "XMPickImageCollectionViewCell.h"
#import "XMPublishContentVideoController.h"
NS_ASSUME_NONNULL_BEGIN

@interface XMPickImageViewController : UICollectionViewController
//获取所有视频和图片集合
@property (nonatomic,strong) NSMutableArray *photoArray;

//如果是视频时显示的图片字典
@property (nonatomic,strong) NSMutableDictionary *imageDic;

//如果是视频时存的AVPlaver字典
@property (nonatomic,strong) NSMutableDictionary *vedioDic;


@end

NS_ASSUME_NONNULL_END




#import "XMPickImageViewController.h"
//继承代理
@interface XMPickImageViewController ()<UICollectionViewDelegate>

@end

@implementation XMPickImageViewController

- (void)viewDidLoad {
   
   
    [super viewDidLoad];
    //初始化存放所有视频和图片的集合
    self.photoArray = [[NSMutableArray alloc] init];
    //获取所有类型为图片的资源
    PHFetchResult<PHAsset *> *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];
    self.imageDic = [[NSMutableDictionary alloc] init];
    PHImageManager *imageManger = [PHImageManager defaultManager];
    
    for (PHAsset *asset in fetchResult) {
   
   
        
        //通过PHImageManager从资源中取图片
        [imageManger requestImageForAsset:asset targetSize:CGSizeMake(110, 110) contentMode:PHImageContentModeDefault options:nil resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
   
   
        	//放入集合
            [self.photoArray addObject:result];
            
        }];
        
    }
    //获取所有类型为媒体的资源
    fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:nil];
    
    for (PHAsset *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值