这是一篇关于总结性的, 我会持续的在这里更新自己的总结。由于之前在工作的过程中没有特意的将自己写的功能从项目中剥离出来,但是又不能使用公司的项目来做介绍,所以自己最近匆匆忙忙的弄了一个简单的Demo。请先看完下面的这个动图:
图中是我最近弄的一个名叫NewStart(新起点)的APP,代码在这里NewStart(新起点),下载代码之后, 可以先看一下这篇iOS项目的搭建到分发,这篇文章主要介绍的是一个项目的简单搭建到分给项目组同事的一个过程。通过这个简单的APP可以看出我这些年的工作习惯,大概的流程以及代码的编码风格。
却记:现在这个APP中没有实质性的功能, 但是大家可以看看整个项目的结构。
先简单的介绍一下NewStart(新起点)功能:
1、登录界面
一个普通的登录界面,这是早期学习RAC的时候实现的。主要的亮点就是使用了RAC与输入框有一个字符限制。字符限制用到一个NSString的分类(Regex),主要是模仿UIViewAutoresizing来实现的。
2、项目框架
登录成功之后是一个项目的大体框架。具体的可以参考iOS项目的搭建到分发。
3、首页
主要是一个轮播图与一个自己纯代码实现的一个多功能cell显示。这里的亮点主要是使用纯代码实现了一个“多功能”的cell显示。对于编码方面,我比较喜欢使用纯代码。在我的团队中,我是强烈希望他们都积极使用纯代码。当然使用storyboard与xib也是很不错的,但是不会使用纯代码,那肯定是不可行的。
对于这部分的“多功能”的cell的实现, 主要是看这里:
这里涉及到一个cell的高度如何一次性计算(并不是每次刷新都要重新计算),以及获取cell的简单调用。
这是一个很简单的 “多功能”的cell,主要是通过图片的数量来决定cell的现实样式。主要有三种4中样式的cell:
-
1.无图
-
2.一张图
-
3.两张图
-
4.等于或者大于3张图,大于三张图的时候, 可以左右滑动
其中当图片等于/大于两张的时候, 图片的显示使用的是在cell中添加了一个UICollectionView子视图。
大家可以在HomeData.plist文件中添加数据, 单数尽量按照规律来添加数据, 因为我没有做其他的异常/判空处理。[偷笑中]
4、消息
这个暂时是简单的一个列表, 几乎没有什么技术含量,现在仅仅是为了弄点数据去显示而已。
5、中间按钮
主要就是一个UITabBar的实现,没有什么功能,可以点击看一下效果。
6、订单
这里也没有什么订单, 现在就弄了一个联动效果的功能在那里。但是这个联动效果的功能是我16年3月份写的,在现在看来这个效果是有bug的,但是从技术方面来说,还是很含金量的,主要是模仿了UITableView的数据刷新机制来实现的,其中巧妙的使用的block的回调与UICollectionView结合使用。
7、我的
使用storyboard做的一个简单的界面搭建,但是可以点击第一个cell(带头像),里面有一个个性签名的编辑框实现, 这个带有字符限制,里面做了精心的处理,感觉还不错的。主要的亮点是:最大限制30个字符,当光标不是最后的时候,已经输入29个字符,这个时候还想在中间的某个位置输入一个中文的情况。我看过其它很多app,这种情况他们是输入不了的, 但是我处理的这个是可以的。[偷笑]
下面会将我认为写得有点意思的在下面列一下:
- iOS单例的精心设计历程
- iOS 中对copy的探索
- KVO与Category
- iOS开发中、如何选择重写初始化方法?
- 通过 PHAsset 获取图片遇到的坑
- iOS开发中的布局
- 三句话理解时区与时间戳
- iOS断言的学习
- UITabBarController 的特别之处,主要介绍了viewDidLoad与普通控制器有不同的调用时期。
- OC 中的 load 与 initialize 方法
- 个性签名编辑框的简单实现
- iOS 静态库制作
- iOS控制器命名哲学
- CocoaPods库的制作
- iOS显示HTML文本
- 宏定义与常量的基本用法