借助TZImagePickerController三方库理解自定义相册

1.整体架构分析 
整体框架大致可以分为几个部分 
<1>工具类-TZImageManager:这个类主要是工作是提供一些获取的方法,包括:获取相册、获取Asset数组,获取照片、获取视频、保存照片、获得一组照片的大小 
<2>自定义继承于NavigationCotroller的ImagePicker(类似于系统的UIImagePickerController)-TZImagePickerController:由于有些工作需要处理,系统的那个都是自己定义好的所以必须得自定义一个ImagePickerController,这个类有累死于Navigation的作用,除了设置外观以外,他还有自己的作用,比如初始化一个TZImagePickerController(初始化有多种方式带预览的和不带预览的),在这初始化其实也就是初始化自定义的TZAlbumPickerController下面介绍个类的一些作用 
<3>相册展示类-TZAlbumPickerController:这个类是在TZImagePickerController初始化的时候初始化的,这个类的主要作用就是展示相册,通过Manager获取相片以及相片的名称在这个类的tableView里展示(当然这个是自己定义的tableViewCell),通过TableView的代理方法进入照片或者视频展示,即是TZPhotoPickerController这个类,下面介绍这个类 
<4>相片或者视频展示类TZPhotoPickerController-这个类的主要作用是展示照片,当然这个界面是通过我们自定义的collectionViewcell实现的,这样这个界面就是有我们自己随便设计,可以实现多选等等功能 
<5>图片预览类TZPhotoPreviewController-这个类及实现了图片预览的功能 
<6>视频播放类TZVideoPlayerController:这个类主要实现了视频播放 
其实我们了解了作者的一个基本机构这个三方库一个思路对于理解这个三方库是一个很大的帮助,当然我认为理解这个架构更主要的还是对自己的一个提升 
2.谈谈我对这个三方库的基本理解 
这个三方库其实最主要的实现还是在TZImageManager里边的逻辑实现,重要的实现取照片以及取相册,对相册的过滤等等,这些东西我们需要看源码具体怎么实现!

借助TZImagePickerController三方库理解自定义相册的更多相关文章

  1. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  2. 2018 6年iOS开发常用的三方库

    开发一般APP必备三方库,省力秘籍!!!本篇文章会经常更新最新常用的三方. 1.网络请求库 AFNetworking https://github.com/AFNetworking/AFNetwork ...

  3. iOS----------常用三方库

    1.笔者常用三方库 名称 作用 说明 <small>AFNetworking <small>基于HTTP/HTTPS 联网请求 <small> <small& ...

  4. .Net 常用插件及第三方库

    .Net 常用插件及第三方库 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址: ...

  5. iOS--app自定义相册--创建相簿,存储图片到手机

    我们在APP中点击照片,都会显示出大图,然后在大图的上面会有个保存照片的按钮,照片直接保存到了系统的相册中,但是因为公司产品的需要,让你创建和APP同名的相册保存在里面,那么就对了,可以看下具体的代码 ...

  6. iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

    iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS ...

  7. iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)

    一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...

  8. iOS中怎么存储照片到自定义相册

    在市场上主流App中,大多数App都具有存储图片到自己App的相册中.苹果提供的方法只能存储图片到系统相册,下面讲一下怎么实现: 实现思路:  1.对系统相册进行操作的前提必须导入#import &l ...

  9. 网络请求三方库——OkHttp

    我们知道在Android开发中是可以直接使用现成的API进行网络请求的,就是使用 HttpClient 和 HttpURLConnention ,而Android 4.4 之后 HttpClient  ...

随机推荐

  1. 怎样查看MYSQL数据库的端口号

    show variables like '%port%';

  2. linux socket 编程(C语言)[转]

    最近看了一些网络编程的书籍,一直以来总感觉网络编程神秘莫测,其实网络编程入门还是很容易学的,下面这些代码是我在linux下编写的,已经运行过了,编译之后就可以运行了.有不足之处希望大家多多指出,共同学 ...

  3. CentOS 7 yum 安装 MySQL5.7

    1.下载 MySQL 官方的 Yum Repository ,官网地址:https://dev.mysql.com/downloads/repo/yum/ 从 MySQL 官网选取合适的 MySQL ...

  4. grep运用

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  5. 理解SSL/TLS协议

    理解SSL/TLS协议 背景 早期我们在访问web时使用HTTP协议,该协议在传输数据时使用明文传输,明文传输带来了以下风险: 1.信息窃听风险,第三方可以获取通信内容 2.信息篡改风险,第三方可以篡 ...

  6. JAVA常用知识点及面试题总结

    1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...

  7. Java锁概念基础

    Java中的锁不管是Lock还是synchronized都可以分为互斥锁和非互斥锁. 互斥锁只能被一个线程持有,其他线程只能等待锁的释放.synchronized,ReentrantLock,Read ...

  8. BZOJ 3168: [Heoi2013]钙铁锌硒维生素 [线性基 Hungary 矩阵求逆]

    3168: [Heoi2013]钙铁锌硒维生素 题意:给一个线性无关组A,再给一个B,要为A中每个向量在B中选一个可以代替的向量,替换后仍然线性无关.判断可行和求字典序最小的解 PoPoQQQ orz ...

  9. BZOJ 3550: [ONTAK2010]Vacation [单纯形法]

    有3N个数,你需要选出一些数,首先保证任意长度为N的区间中选出的数的个数<=K个,其次要保证选出的数的个数最大. 好像都是费用流... 单纯性裸题呀... 注意每个数最多选1次 #include ...

  10. JS工厂模式开发实践

    JS工厂模式开发实践 基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功能,并且实现了文字大小的自适应功能,基于SASS样式开发. 核心的JS代码如下: index.js define(functi ...