zoukankan      html  css  js  c++  java
  • Ios 一个很好用的图片选择器

     每次访问相册 都是一个 难看的画面 对我来说已经受不了了  去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/

  • 相关阅读:
    java网络编程基础——TCP网络编程二
    java网络编程基础——TCP网络编程一
    java网络编程基础——基本网络支持
    《红色警戒3》增援代码大全
    怎么重复使用inputStream?
    Java对象和XML相互转换
    Freemarker数字格式化总结
    Java Web之过滤器(Filter)
    mysql报错后,tomcat假死,多半是数据库连接池设置有问题
    关于tomcat启动时的警告 :Property maxActive is not used in DBCP2, use maxTotal instead. 和 Property maxWait i
  • 原文地址:https://www.cnblogs.com/lxgblog/p/6028105.html
Copyright © 2011-2022 走看看