借助TZImagePickerController三方库理解自定义相册
借助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三方库理解自定义相册的更多相关文章
- iOS:iOS开发非常全的三方库、插件等等
iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...
- 2018 6年iOS开发常用的三方库
开发一般APP必备三方库,省力秘籍!!!本篇文章会经常更新最新常用的三方. 1.网络请求库 AFNetworking https://github.com/AFNetworking/AFNetwork ...
- iOS----------常用三方库
1.笔者常用三方库 名称 作用 说明 <small>AFNetworking <small>基于HTTP/HTTPS 联网请求 <small> <small& ...
- .Net 常用插件及第三方库
.Net 常用插件及第三方库 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址: ...
- iOS--app自定义相册--创建相簿,存储图片到手机
我们在APP中点击照片,都会显示出大图,然后在大图的上面会有个保存照片的按钮,照片直接保存到了系统的相册中,但是因为公司产品的需要,让你创建和APP同名的相册保存在里面,那么就对了,可以看下具体的代码 ...
- iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码
iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS ...
- iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)
一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...
- iOS中怎么存储照片到自定义相册
在市场上主流App中,大多数App都具有存储图片到自己App的相册中.苹果提供的方法只能存储图片到系统相册,下面讲一下怎么实现: 实现思路: 1.对系统相册进行操作的前提必须导入#import &l ...
- 网络请求三方库——OkHttp
我们知道在Android开发中是可以直接使用现成的API进行网络请求的,就是使用 HttpClient 和 HttpURLConnention ,而Android 4.4 之后 HttpClient ...
随机推荐
- Java数据结构和算法(十四)——堆
在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入数据项的方法,优先级队列可以用有序数组来实现 ...
- android imageview按钮按下动画效果
private ImageView today_eat: today_eat = (ImageView) view.findViewById(R.id.today_eat); today_eat.se ...
- spring boot + vue + element-ui全栈开发入门——开篇
最近经常看到很多java程序员朋友还在使用Spring 3.x,Spring MVC(struts),JSP.jQuery等这样传统技术.其实,我并不认为这些传统技术不好,而我想表达的是,技术的新旧程 ...
- 《Python网络编程》学习笔记--使用谷歌地理编码API获取一个JSON文档
Foundations of Python Network Programing,Third Edition <python网络编程>,本书中的代码可在Github上搜索fopnp下载 本 ...
- 序列化与transient
满足下面四个条件中的一个的类就不应该被序列化: 1.一个类与本地代码(native code)有紧密的关系,如java.util.zip.Deflater,这个类中很多都是native的. 2.对象 ...
- bzoj 4591: [Shoi2015]超能粒子炮·改 [lucas定理]
4591: [Shoi2015]超能粒子炮·改 题意:多组询问,求 \[ S(n, k) = \sum_{i=0}^n \binom{n}{i} \mod 2333,\ k \le n \le 10^ ...
- HDU 2296 Ring [AC自动机 DP 打印方案]
Ring Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...
- 剑指offer试题(PHP篇二)
6.旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1 ...
- PHPUnit简介及使用
一.PHPUnit是什么? 1.它是一款轻量级的PHP测试框架,地址:http://www.phpunit.cn 2.手册:http://www.phpunit.cn/manual/5.7/zh_cn ...
- ecshop QQ邮箱发送邮件服务器配置
ecshop QQ邮箱发送邮件服务器配置 1.邮件服务:采用其他的SMTP服务 2.邮件服务器是否要求加密连接(SSL): 是 此项设置需要php支持openSSL模块 开启方法: a.php.ini ...