https://www.jianshu.com/p/ec29feb0b5a6
![](https://i-blog.csdnimg.cn/blog_migrate/1bca2fdbacf473a7da982ce4029392b2.webp?x-image-process=image/format,png)
考试答题效果示例.gif
-
小编在深圳的一家专注于教育软件的企业工作,原来考试模块是加载的web,但是考虑到性能流畅度,近期改成原生,花了一些时间去写了一下这个demo,只是因为公司忙于其他事情,就一直没发出来,刚好有一点时间稍微整理一下发出来,与大家分享一下。如果在使用过程中遇到什么问题请留言我;如果能够对你有一点点的帮助,请点个star,谢谢
-
整体结构是很基础的collectionview + tableview,小编曾尝试过scrollview + tableview的方式,因为题量比较大,感觉不是太合理
-
对答题的结果保存至本地
-
定时器使用的是GCD 封装工具(如果你使用nstimer的话,请记得加入runloop占位模式,否则在UI处理模式中定时不能同时执行),很简单的几个方法如下图
![](https://i-blog.csdnimg.cn/blog_migrate/97cc95a46bf719d9aba2e8182513bcda.webp?x-image-process=image/format,png)
E7D5ED7E-AD65-46B7-8748-14ABBBF2D00F.png
- 宏定义标识一些状态,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/e34f3ce0921aaaff3d019d8939f80abe.webp?x-image-process=image/format,png)
E09D37A3-8BD6-4EA6-AE7A-E4780D0ECF47.png
- 对于只能切换至下一题的情况,小编采用的是将collectionview处理成单向滑动,实现原理 :1.禁止collectionViw滑动->2.添加滑动手势,根据手势的方法解决单向滑动的问题
- 填空题算是个难点吧,比较麻烦,在yykit的基础上进行的处理
- 具体代码我就不copy了,demo写的很详细,注释也比较多,也没有什么太深的封装,有兴趣欢迎你来一起讨论