#AGLImagePicker
看到很多网上的照片选择器的代码,写的都不错,功能也都齐全,但是但放在我的项目里面却不能解决我遇到的问题。如果能够把他们全部整合在一起,就更完美了。 于是,我抱着这样的心情开始这个项目。
文件名 | 子目录 | 内容简介 |
---|---|---|
Main | 存放主体代码。 项目入口等。 |
|
Demo | 调用代码. 这里面使用封装好的ImagePicker。并实现picker的代理。 |
|
ImagePick | 照片选择器封装在这个文件件 | |
Delegate | AppDelegate |
master分支存放稳定版本的代码 develop分支是最新开发分支
基本完成框架搭建
- 第一天把基本的框架搭出来了。写之前觉得别人的代码需要很多改进的地方,有的文件似乎并不需要,然而我自己动手的时候其实还是在重复别人的功能。这些功能都已经成为定型了。
- 然而,做什么最重要的是不忘初心。我开这个项目的目的就不是开创出什么新的代码,只是为了自己维护自己的代码相对维护别人的代码更加快速。
- 动手写代码果然是记住知识点的较为有效的(更加有效地方法有待探索)方法。例如这次就用到
iseqal
和hash函数
的用法。书上说 isequal等于YES
,hash
返回值一定相同,但hash
返回值相同,isequal
未必相等,有可能是手动重写hash
方法返回相同的值。
基本完成预览和选择功能。 不足:界面粗糙、功能简单 所谓的心得:
- view一定要实现高度的封装。例如在这次项目中:
AGLTapImageView
、AGLBroserCell
、AGLSendButton
等都实现了较深程度的封装。 他的目的一是可以实现面向对象的变成原则(这些空话就不提了),更重要的是简化调用代码,只需几行甚至一行代码就能实现诸如状态转化、视图变化等复杂的本该属于视图内部管理的功能。 - 还是那句话,不要看不起任何一行代码,现在你觉得没必要甚至是错误的,以后也许你才会意识到这么做事有道理的。
- 写代码的时候我忍不住借鉴了大神的代码,一开始我觉得羞耻,后来我释然了,不会就要问,问了就会了。谁都是一步一步走上来的。
- 天冷的时候不要写代码,根本写不进去,手抖,脑子集中不到屏幕上。
- 以上说的都是废话。
项目完成之后,托管到github上。