借助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 ...
随机推荐
- SQL FOR XML PATH 和 Stuff 用法
sql stuff 用法 1.作用 删除指定长度的字符,并在指定的起点处插入另一组字符. 2.语法 STUFF ( character_expression , start , length ,cha ...
- Java细节
native关键字用法 native是与C++联合开发的时候用的!java自己开发不用的! 使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL, ...
- 在SecureCRT中无需输入密码登录Linux主机
服务器端操作系统:CentOs 5.8客户端:SecureCRT5.1.3第一步:密钥对的生成.在SecureCRT中建立一个新的连接.protocol选ssh2hostname输入要连接的主机IP. ...
- log4j源码解析-文件解析
承接前文log4j源码解析,前文主要介绍了log4j的文件加载方式以及Logger对象创建.本文将在此基础上具体看下log4j是如何解析文件并输出我们所常见的日志格式 附例 文件的加载方式,我们就选举 ...
- 常系数齐次线性递推 & 拉格朗日插值
常系数齐次线性递推 具体记在笔记本上了,以后可能补照片,这里稍微写一下,主要贴代码. 概述 形式: \[ h_n = a_1 h_{n-1}+a_2h_{n-2}+...+a_kh_{n-k} \] ...
- C# 使用GDI制作垂直进度条(由下往上)
使用GDI+绘进度条的方式多种多样,可以封装一个UserControl,也可以直接使用一个控件来绘制(Label.Image.Panel等),甚至可以直接在winForm上画一个,关键代码没几行(这里 ...
- MUI体验框架
1. mui简介 1.1 缘起 1.基于jq的jqmobile,性能低的无法忍受,且UI难看 2.bootstrap这种响应式设计,性能在低端机不足,而且UI风格一看就是网页,不是App的 ...
- 让SpringMVC Restful API优雅地支持多版本
好久没有更新博客,难得有空,记录一下今天写的一个小工具,供有需要的朋友参考. 在移动APP开发中,多版本接口同时存在的情况经常发生,通常接口支持多版本,有以下两种方式: 1.通过不同路径区分不同版本 ...
- 2018/1/9 redis学习笔记(一)
本文不涉及redis基本命令以及javaapi的解释操作; 首先介绍下redis,一个nosql非关系型数据库,运行在缓存中,特点就是可存储的数据结构类型很多,做为KEY-VALUE数据库,它的键只能 ...
- Linux系统下LNMP一键搭建Linux、PHP、MySQL环境(适合新手搭建linux下的web生成环境)
一. 首先要解释一下,什么是LNMP,LNMP起源于LAMP,LAMP是Linux+Apache+Mysql/MariaDB+Perl/PHP/Python的缩写,这里将Web服务端的Apache替换 ...