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

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

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

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

内容概要:

1、关于Coding中的自定义Cell

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

3、关于UISegmentedControl

4、关于RootTabViewController

5、关于RKSwipeBetweenViewControllers

正文:

1、关于Coding中的自定义Cell

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

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

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

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

另外:

本小节会不断的更新。

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

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

3、关于UISegmentedControl

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

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

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

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

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

接着:

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

4、关于RootTabViewController

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

5、关于RKSwipeBetweenViewControllers

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

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

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

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

学习Coding-iOS开源项目日志(三)的更多相关文章

  1. 推荐大家在GitHub 上值得关注学习的 iOS 开源项目

    GitHub上有很多不错的iOS开源项目,和大家特别推荐以下几个项目: 1. ReactiveCocoa GitHub链接:ReactiveCocoa/ReactiveCocoa GitHub自家的函 ...

  2. 直接拿来用!最火的iOS开源项目(三)

    相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红.尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱.在“直接拿来用!最火的iOS开源项目”系列文章(一).(二 ...

  3. 直接拿来用!最火的iOS开源项目(一~三)

    结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的iO ...

  4. 学习Coding-iOS开源项目日志(一)

    前言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目.本篇开始会陆续更新本人对github上开源的一个很不错的项目的一点点学习积累.也就是,探究着别人写的源码,我学到了 ...

  5. 学习Coding-iOS开源项目日志(二)

    继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...

  6. 学习Coding-iOS开源项目日志(五)

    继续,接着前面第四篇<学习Coding-iOS开源项目日志(四)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目 ...

  7. 转__Android开源项目(三 完结篇)

    http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale/1 截至目前,在GitHub“最受 ...

  8. iOS开源项目周报1222

    由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...

  9. 直接拿来用!最火的iOS开源项目

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

随机推荐

  1. 创建与使用Web API

    今天做了一个练习,实现单独的Web API project.以前只是在ASP.NET MVC project内创建. 创建一个Web API project,可参考下面步骤: 点击OK之后,出现另外一 ...

  2. asp.net网站优化经验之谈

    最近公司一个项目上线后,经常崩溃,于是开始重视性能问题,在网上看到了许多相关文章,整理下发了上来.以备参考. 在用ASP.NET开发网站的时候,性能是永远需要考虑和关注的问题,性能不仅仅只是程序代码执 ...

  3. 在Android开发中调用Rest web服务(转)

    首先从维基百科上拷贝一点Rest的基本概念给大家看看,然后我们再开始详解在Android中如何调用Rest服务.表象化状态转变(英文:Representational State Transfer,简 ...

  4. Js模型和封装

    一点拙劣的小分享,欢迎批评和补充 我们经常在Js中为我们的各类组件,构造Json格式的假数据.我们看如下代码: var jsonResult = [ { ' }, { ' } //我们把jsonRes ...

  5. 【处理手记】Configuration system failed to initialize异常的另类原因

    有个c#程序在某台电脑上,执行某个操作时,总是会报如图错误: 度娘一番,发现市面上常见的原因是配置文件中的特定节点的位置不对,或者配置文件损坏等等,而这个程序根本没有使用内置的配置文件方案,而是用的i ...

  6. Java主要知识结构

    Java基础(建议看java编程规范): Java语言基础:数据类型,命名规则,权限控制符,注释 操作符:算术操作符,逻辑操作符,关系操作符,移位操作符,按位操作符 流程控制 数组 字符串 Java高 ...

  7. Verilog学习笔记简单功能实现(八)...............同步FIFO

    Part 1,功能定义: 用16*8 RAM实现一个同步先进先出(FIFO)队列设计.由写使能端控制该数据流的写入FIFO,并由读使能控制FIFO中数据的读出.写入和读出的操作(高电平有效)由时钟的上 ...

  8. hash简单介绍

    hash也称"散列", 是一种基于映射关系的存储方式,将任意长度的二进制值输出为固定长度的较小的二进制值,这种输出的小的固定长度的值为hash值: 1. 散列技术是在关键字key与 ...

  9. mysql批量插入数据的基类

    自己设计的一个mysql数据库批量添加数据的基类.用于批量向mysql数据库添加数据,子类实现起来很简单,自测性能也还不错. 1.基类实现-BatchAddBase using System.Coll ...

  10. 大家一起撸代码之——Hibernate各种主键生成策略与配置详解

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...