学习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
内容概要:
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开源项目日志(三)的更多相关文章
- 推荐大家在GitHub 上值得关注学习的 iOS 开源项目
GitHub上有很多不错的iOS开源项目,和大家特别推荐以下几个项目: 1. ReactiveCocoa GitHub链接:ReactiveCocoa/ReactiveCocoa GitHub自家的函 ...
- 直接拿来用!最火的iOS开源项目(三)
相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红.尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱.在“直接拿来用!最火的iOS开源项目”系列文章(一).(二 ...
- 直接拿来用!最火的iOS开源项目(一~三)
结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的iO ...
- 学习Coding-iOS开源项目日志(一)
前言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目.本篇开始会陆续更新本人对github上开源的一个很不错的项目的一点点学习积累.也就是,探究着别人写的源码,我学到了 ...
- 学习Coding-iOS开源项目日志(二)
继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...
- 学习Coding-iOS开源项目日志(五)
继续,接着前面第四篇<学习Coding-iOS开源项目日志(四)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目 ...
- 转__Android开源项目(三 完结篇)
http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale/1 截至目前,在GitHub“最受 ...
- iOS开源项目周报1222
由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...
- 直接拿来用!最火的iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
随机推荐
- Auto Mapper01
在项目中一直在使用Auto Mapper技术,但是只是会简单的使用,对其里面的一些具体的细节和知识点不是很清楚,现在就跟着我从最基础的知识点来重新认识下,AutoMapper技术吧. ...
- VUE2.0不可忽视的很多变化
今天使用webpack-sample初始一个vue-cli项目,在app.vue文件中添加了个钩子函数ready,可是ready内的事件一直不执行,检查了webpack文件和package.json也 ...
- 原生JS 获取浏览器、窗口、元素等尺寸的方法及注意事项
一.通过浏览器获得屏幕的尺寸 screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去 ...
- IHTMLDocument2
{IHTMLDocument2 方法:} write //写入 writeln //写入并换行 open //打开一个流,以收集 document.write 或 document.writeln 的 ...
- enum和int、string的转换操作
enum Countries{ 中国 = 5, 美国, 俄罗斯, 英国, 法国} enum 和 int enum -> intint num = (int)Coun ...
- C#编程总结(四)多线程应用
C#编程总结(四)多线程应用 多线程应用很广泛,简单总结了一下: 1)不阻断主线程,实现即时响应,由后台线程完成特定操作2)多个线程,完成同类任务,提高并发性能3)一个任务有多个独立的步骤,多个线程并 ...
- Redis系列一之数据结构
一.Redis简介 redis是一个高性能的key-value非关系数据库,它可以存键(key)与5种不同类型的值(value)之间的映射(mapping),支持存储的value类型包括:String ...
- C#/.NET 基础学习
初识C# C#是微软公司发布的面向对象的.运行于.NET Framework之上的高级程序设计语言.与Java有着明显不同,借鉴Delphi的特点,与COM(组件对象模型)直接集成,是微软公司 .NE ...
- XMPP客户端开发(1)--连接和登录
Smack可用于XMPP客户端的开发,下载Smack,将相关jar文件导入后,即可以开始XMPP客户端的开发. 以下代码实现了客户端连接Tigase服务器,并根据用户名和密码登录. package X ...
- 使用attrs.xml自定义属性
控件有很多属性,如android:id.android:layout_width.android:layout_height等,但是这些属性都是系统自带的属性.使用attrs.xml文件,可以自己定义 ...