https://www.jianshu.com/p/ec29feb0b5a6

2017.07.27 11:48* 字数 424 阅读 615评论 9喜欢 11

demo地址:https://github.com/feng562925462/ExamModule

 
考试答题效果示例.gif
  • 小编在深圳的一家专注于教育软件的企业工作,原来考试模块是加载的web,但是考虑到性能流畅度,近期改成原生,花了一些时间去写了一下这个demo,只是因为公司忙于其他事情,就一直没发出来,刚好有一点时间稍微整理一下发出来,与大家分享一下。如果在使用过程中遇到什么问题请留言我;如果能够对你有一点点的帮助,请点个star,谢谢

  • 整体结构是很基础的collectionview + tableview,小编曾尝试过scrollview + tableview的方式,因为题量比较大,感觉不是太合理

  • 对答题的结果保存至本地

  • 定时器使用的是GCD 封装工具(如果你使用nstimer的话,请记得加入runloop占位模式,否则在UI处理模式中定时不能同时执行),很简单的几个方法如下图

 
E7D5ED7E-AD65-46B7-8748-14ABBBF2D00F.png
  • 宏定义标识一些状态,如下图
 
E09D37A3-8BD6-4EA6-AE7A-E4780D0ECF47.png
  • 对于只能切换至下一题的情况,小编采用的是将collectionview处理成单向滑动,实现原理 :1.禁止collectionViw滑动->2.添加滑动手势,根据手势的方法解决单向滑动的问题
  • 填空题算是个难点吧,比较麻烦,在yykit的基础上进行的处理
  • 具体代码我就不copy了,demo写的很详细,注释也比较多,也没有什么太深的封装,有兴趣欢迎你来一起讨论

oc之考试答题类效果的更多相关文章

  1. 项目源码--Android答题类游戏源码

    下载源码 技术要点: 1. 精致的答题UI 2. Android的Http通信技术 3. Android数据库QLITE与其他数据存储技术 4. Android在线音乐背景技术 5. Android答 ...

  2. Pygame制作答题类游戏的实现

    代码地址如下:http://www.demodashi.com/demo/13495.html 概述 个人比较喜欢玩这些答题类的游戏,在这类的游戏中其实存在着一些冷知识在里面.练习pygame的过程中 ...

  3. [BS-18] 对OC中不可变类的理解

    对OC中不可变类的理解 OC中存在很多不可变的类(如NSString,NSAttributedString,NSArray,NSDictionary,NSSet等),用它们创建的对象存在于堆内存中,但 ...

  4. (转载)OC学习篇之---类的定义

    之前已经介绍了OC中的一个程序HelloWorld,今天我们继续学习OC中类的相关知识. OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那 ...

  5. OC语言的面向对象—类和对象、方法

    1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...

  6. OC学习篇之---类的定义

    OC中类的相关知识 OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那么对类和对象的概念就不陌生了,因为Java是非常纯正的面向对象设计语言 ...

  7. (转载)OC学习篇之---类的三大特性:封装,继承,多态

    之前的一片文章介绍了OC中类的初始化方法和点语法的使用,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今 ...

  8. QF——OC中的SEL类型和Block

    @selector(): 可以理解@selector()就是取类方法的编号,他的基本行为类似于C语言中的函数指针(指向函数的指针).它们通过传递方法的地址(或编号)来实现把方法当做参数的效果. 不过在 ...

  9. OC学习篇之---类的三大特性(封装,继承,多态)

    之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习 ...

随机推荐

  1. IL范围不正确

    一.昨晚在改过一个bug之后在本机测试没问题,于是提交代码在测试服务器上发布之后测试的也没问题. 既然测试的都没问题,那就要往正式环境中发布咯,然而,发布到正式环境中就报错:IL范围不正确,这个错是打 ...

  2. Vue学习之路4-v-bind指令

    1. 定义 1.1 v-bind 指令被用来响应地更新 HTML 属性,其实它是支持一个单一 JavaScript 表达式 (v-for 除外). 2. 语法 2.1 完整语法:<span v- ...

  3. June 18. 2018, Week 25th. Monday

    Health and cheerfulness naturally beget each other. 安康喜乐,相生相成. From Joseph Addison. Good health is a ...

  4. java使用elasticsearch实现集群管理

    本篇博客主要是查看集群中的相关信息,具体请看代码和注释 @Test public void test45() throws UnknownHostException{ //1.指定es集群 clust ...

  5. SpringMVC handleMapping映射过程

    初始化IOC容器 Spring初始化的时候会优先初始化自定义的类,下面这个就是 org.springframework.web.servlet.mvc.method.annotation.Reques ...

  6. UVA11584-Partitioning by Palindromes(动态规划基础)

    Problem UVA11584-Partitioning by Palindromes Accept: 1326  Submit: 7151Time Limit: 3000 mSec Problem ...

  7. 【vue】vue +element 搭建项目,将js函数变成vue的函数

    demo:时间转换 1.目录 <1>在src文件夹下新建文件夹prototypefns--------在此文件夹创建util.js, <2>在prototypefns下新建文件 ...

  8. Flask路由报错:raise FormDataRoutingRedirect(request)

    raise FormDataRoutingRedirect(request)FormDataRoutingRedirect: A request was sent to this URL (http: ...

  9. Vue2.x源码学习笔记-Vue实例的属性和方法整理

    还是先从浏览器直观的感受下实例属性和方法. 实例属性: 对应解释如下: vm._uid // 自增的id vm._isVue // 标示是vue对象,避免被observe vm._renderProx ...

  10. face recognition[Euclidean-distance-based loss][FaceNet]

    本文来自<FaceNet: A Unified Embedding for Face Recognition and Clustering>.时间线为2015年6月.是谷歌的作品. 0 引 ...