每次访问相册 都是一个 难看的画面 对我来说已经受不了了 去code4app 去cocoachina 有的现在下来 不好用
今天同事 找到一个 图片选择器 懂得来说 效果 好不错 当然 介于我们自己项目的需要 会对内部做一些修改 不过 我还是吧原生的分享得大家 你们可以根据自己的需要修改 总的用法不难
TZImagePickerController *imageVC = [[TZImagePickerController alloc]initWithMaxImagesCount:9 columnNumber:3 delegate:self pushPhotoPickerVc:YES];
// 1、是否允许选择原图
imageVC.isSelectOriginalPhoto = NO;
// 2、在内部显示拍照按钮
imageVC.allowTakePicture = YES;
// 3. 设置是否可以选择视频/图片/原图
imageVC.allowPickingVideo = YES;
imageVC.allowPickingImage = YES;
imageVC.allowPickingOriginalPhoto = YES;
// 4. 照片排列按修改时间升序
imageVC.sortAscendingByModificationDate = YES;
[self presentViewController:imageVC animated:YES completion:nil];
顺便告诉你 图片每次最多选择9张 视频只能选一个 妈的 这个博客能放文件共享吗 在哪里 我曹 怎么分享文件
我先把 用法贴出来 当然 我们只用了一些 需要的 遵循代理 干过ios的 都会吧 别告诉我 tableview代理 textview代理 没遵循过 那你用的是什么 我就不呵呵了 遵循 TZImagePickerControllerDelegate
#pragma mark <TZImagePickerControllerDelegate>代理
- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto{
photos 是选择图片 传回来的UIImage 数组 想要拿到它 放到自己的数据源里面 就建一个全局数组接受吧
assets 这个是原始对象 要解析他 才能获取到具体的 路径 会累死你的 我们当时就是视频地址获取 累死
}
- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingVideo:(UIImage *)coverImage sourceAssets:(id)asset{
coverImage 视频的第一帧图片 你知道不 我们都知道视频是图片按帧组成的 举个牛逼的例子 你打英雄联盟的时候 fps是什么 每秒帧数 就是一秒有多少张图片刷新 想一下 fps是3 每秒三张图片 是不是卡死你 fps 是200 每秒200张图片 连在一起播放出来 你能卡吗 (id)asset 解析获取视频在手机里的地址
[self getAsset:self.selectedAsset resultHandler:^(NSURL *url) {
weakself.videoFileURL = url.absoluteString; 可以把它转成字符串 接收出来 如果NSURL 可能失败 因该是苹果内部坐了处理
}];
}
#pragma mark 视频地址获取
- (void)getAsset:(id)asset resultHandler:(void (^)(NSURL *url))resultHandler {
if ([asset isKindOfClass:[PHAsset class]]) {
PHVideoRequestOptions* options = [[PHVideoRequestOptions alloc] init];
options.version = PHVideoRequestOptionsVersionOriginal;
options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic;
options.networkAccessAllowed = YES;
[[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset* avasset, AVAudioMix* audioMix, NSDictionary* info){
AVURLAsset *videoAsset = (AVURLAsset*)avasset;
resultHandler(videoAsset.URL);
}];
} else if ([asset isKindOfClass:[ALAsset class]]) {
resultHandler([asset valueForProperty:ALAssetPropertyAssetURL]); // ALAssetPropertyURLs
}
}
我曹 你们能看见吗 看不见的活 谭真大佬的git地址 https://github.com/banchichen/TZImagePickerController/