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/

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/lxgblog/p/6028105.html
Copyright © 2011-2022 走看看