学习Coding-iOS开源项目日志(三)

继续前两篇,接着本第三篇《学习Coding-iOS开源项目日志(三)》讲解Coding-iOS开源项目。

前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目。本篇开始会陆续更新本人对github上开源的一个很不 错的项目的一点点学习积累。也就是,探究着别人写的源码,我学到了新的什么东西?本人愚拙,而且码龄不多,也就三年左右,水平不高,如有挫解,还望指正。 本人乐爱学习,乐于分享,广结良缘,愿意交流。当然,高手可以飘过。

Coding-iOS项目网址:https://github.com/Coding/Coding-iOS 读者感兴趣的可以自己去下载,当然项目很多第三方框架是没有直接集成进来的,读者自行通过该项目的提示处理。

另外还有官网介绍:https://coding.net/u/coding/p/Coding-iOS/git#rd

学习Coding-iOS开源项目日志(三)

内容概要:

1、关于Coding中的自定义Cell

2、关于TableViewCell被选中,然后会恢复未被选中

3、关于UISegmentedControl

4、关于RootTabViewController

5、关于RKSwipeBetweenViewControllers

正文:

1、关于Coding中的自定义Cell

这段内容比较多了,因为Coding中的自定义的各种各样的Cell很多哦,所以我会慢慢更新,哈哈。

用Reveal查看"消息"界面的UI,可以看到:

学习Coding-iOS开源项目日志(三)

然后回到代码中查看,可以很快的定位到ConversationCell和ToMessageCell这两个自定义Cell的类。

学习Coding-iOS开源项目日志(三)

然后进一步查看ToMessageCell,可以看到

学习Coding-iOS开源项目日志(三)

另外:

学习Coding-iOS开源项目日志(三)

本小节会不断的更新。

2、关于TableViewCell被选中,然后会恢复未被选中

这是个很基础的东西,只需要在UITableView下面这个代理方法调用一行代码即可:

学习Coding-iOS开源项目日志(三)

3、关于UISegmentedControl

其实UISegmentedControl可能是你们很常见的控件,但是本人用的很少,所以不太熟悉用法,然后看到Coding中正好使用了,所以就截图来查看使用方法,就这样我又学到东西了。

通过Reavel我们可以发现这个UISegmentedControl在控制器EditTopicViewController中,然后接着我们回到Coding项目中:

学习Coding-iOS开源项目日志(三)

可以找到这个EditTopicViewController控制器,然后查看:

学习Coding-iOS开源项目日志(三)

就这样我们可以通过Coding这个案例学习到东西了,拿去运用到你项目中需要的地方去吧。

然后注意,如果需要在启动当前界面的时候,UISegmentedControl默认要有一个被选中的状态,而不是默认都不被选中,所以需要:

学习Coding-iOS开源项目日志(三)

接着:

学习Coding-iOS开源项目日志(三)

然后对应还要设置响应的业务逻辑代码:

学习Coding-iOS开源项目日志(三)

4、关于RootTabViewController

在RootTabViewController中,我们可以看到它添加了五个控制器:

学习Coding-iOS开源项目日志(三)

5、关于RKSwipeBetweenViewControllers

这个RKSwipeBetweenViewControllers,我也是从上面一个截图中的冒泡控制器对象就是通过这个RKSwipeBetweenViewControllers类创建的,然后我通过commond+click点进去查看,发现这个RKSwipeBetweenViewControllers就是github上开源的很不错的源码:https://github.com/cwRichardKim/RKSwipeBetweenViewControllers

然后我们再看看Coding的效果:

学习Coding-iOS开源项目日志(三)

Coding对这个RKSwipeBetweenViewControllers进行了自定义的修改,RKSwipeBetweenViewControllers的开发者设计的效果不是这样的,但是Coding的开发者却改的很不错,视觉效果就是上面的效果,很好看吧。

本人打算将这个RKSwipeBetweenViewControllers进行学习,然后进行很好的高内聚低耦合的有效封装,并适用更多的使用场景,以满足更多的需求。(需要时间,哈哈)

上一篇:【HTML5】Canvas绘图详解-1


下一篇:mock server