Skip to content

一个基于AssetLibrary的图片选择器模型。

License

Notifications You must be signed in to change notification settings

AngryLi/AGLImagePicker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#AGLImagePicker

项目介绍

看到很多网上的照片选择器的代码,写的都不错,功能也都齐全,但是但放在我的项目里面却不能解决我遇到的问题。如果能够把他们全部整合在一起,就更完美了。 于是,我抱着这样的心情开始这个项目。

项目结构

文件名 子目录 内容简介
Main 存放主体代码。

项目入口等。

Demo 调用代码.

这里面使用封装好的ImagePicker。并实现picker的代理。

ImagePick 照片选择器封装在这个文件件
Delegate AppDelegate

分支介绍

master分支存放稳定版本的代码 develop分支是最新开发分支

开发心得

第一阶段

基本完成框架搭建

  1. 第一天把基本的框架搭出来了。写之前觉得别人的代码需要很多改进的地方,有的文件似乎并不需要,然而我自己动手的时候其实还是在重复别人的功能。这些功能都已经成为定型了。
  2. 然而,做什么最重要的是不忘初心。我开这个项目的目的就不是开创出什么新的代码,只是为了自己维护自己的代码相对维护别人的代码更加快速。
  3. 动手写代码果然是记住知识点的较为有效的(更加有效地方法有待探索)方法。例如这次就用到iseqalhash函数的用法。书上说 isequal等于YEShash返回值一定相同,但hash返回值相同,isequal未必相等,有可能是手动重写hash方法返回相同的值。

第二阶段

基本完成预览和选择功能。 不足:界面粗糙、功能简单 所谓的心得:

  1. view一定要实现高度的封装。例如在这次项目中:AGLTapImageViewAGLBroserCellAGLSendButton等都实现了较深程度的封装。 他的目的一是可以实现面向对象的变成原则(这些空话就不提了),更重要的是简化调用代码,只需几行甚至一行代码就能实现诸如状态转化、视图变化等复杂的本该属于视图内部管理的功能。
  2. 还是那句话,不要看不起任何一行代码,现在你觉得没必要甚至是错误的,以后也许你才会意识到这么做事有道理的。
  3. 写代码的时候我忍不住借鉴了大神的代码,一开始我觉得羞耻,后来我释然了,不会就要问,问了就会了。谁都是一步一步走上来的。
  4. 天冷的时候不要写代码,根本写不进去,手抖,脑子集中不到屏幕上。
  5. 以上说的都是废话。

目标

项目完成之后,托管到github上。

About

一个基于AssetLibrary的图片选择器模型。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published