//
//  ViewController.swift
//  Question
//
//  Created by Mac on 2023/3/26.
//import UIKit// ios 不需要导入文件class ViewController: UIViewController {var currentQuestionIndex = 0var score = 0@IBOutlet weak var questionLabel: UILabel!@IBOutlet weak var scoreLabel: UILabel!@IBOutlet weak var progressLabel: UILabel!@IBOutlet weak var progressBarViewWidth: NSLayoutConstraint!override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.questionLabel.text = questions[currentQuestionIndex].text}@IBAction func answerPressed(_ sender: UIButton) {checkAnswer(sender.tag) //判断用户是否回答正确,给出相应的提示框,并在回答正确时加1分currentQuestionIndex += 1 //本项目重点数据,当前问题所在的下标(索引)nextQuestion() //展示下一个问题,并在到达最后一问时处理相关数据和视图updateProgress() //更新问题序号和黄色进度条}func checkAnswer(_ tag: Int){if tag == 1{if questions[currentQuestionIndex].answer{ProgressHUD.showSucceed("答对了")score += 1updateScoreLabel()}else{ProgressHUD.showError("答错了")}}else{if questions[currentQuestionIndex].answer{ProgressHUD.showError("答错了")}else{ProgressHUD.showSucceed("答对了")score += 1updateScoreLabel()}}}func nextQuestion(){if currentQuestionIndex <= questions.count - 1 {updateQuestionText()}else{currentQuestionIndex = 0score = 0//handler和completion参数为闭包/回调函数,一般用在一怎么怎么就怎么怎么let alert = UIAlertController(title: "漂亮",message: "您已经完成了所有问题,要重新来一遍吗?",preferredStyle: .alert)//alert下面的按钮let action = UIAlertAction(title:"再来一遍", style: .default,handler: {_ inself.updateQuestionText()self.updateScoreLabel()})//把按钮添加到alert页面上去alert.addAction(action)//UIAlertController为UIViewController的子类,可以使用,后述present(alert, animated: true)}}func updateQuestionText(){questionLabel.text = questions[currentQuestionIndex].text}func updateScoreLabel(){scoreLabel.text = "总得分:\(score)"}func updateProgress(){progressLabel.text = "\(currentQuestionIndex + 1) / 13"// 下方进度条// 改变约束对象的constant属性完成进度功能progressBarViewWidth.constant = (view.frame.width / 13) * CGFloat(currentQuestionIndex)}
}
//
//  Question.swift
//  Question
//
//  Created by Mac on 2023/3/27.
//import Foundation// model
class Question{var text: Stringvar answer: Boolinit(text: String, answer: Bool) {self.text = textself.answer = answer}
}let questions = [Question(text: "马云是中国首富", answer: false),Question(text: "刘强东最早是在中关村卖光盘的", answer: true),Question(text: "苹果公司是目前世界上最牛的科技公司", answer: true),Question(text: "只要坚持下去就能学好代码吗", answer: true),Question(text: "王思聪是80后", answer: true),Question(text: "在国内可以正常访问google.com吗", answer: false),Question(text: "敲完1万行代码之后可以成为编程高手吗", answer: true),Question(text: "撒贝宁说过清华也还行吗", answer: false),Question(text: "一直听Lebus的课可以变成大牛吗", answer: true),Question(text: "网上说苹果不好用安卓好用的人大多数都是水军吗", answer: true),Question(text: "豆瓣网是一个和你分享刚编的故事的网站吗", answer: false),Question(text: "优酷比B站牛", answer: false),Question(text: "我帅吗?", answer: true)
]

swift03答题app相关推荐

  1. node.js毕业设计安卓英语答题APP(程序+APP+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue+ ...

  2. Axure 教程:知识竞赛/答题app、小程序原型

    今天教大家用中继器做一个知识竞赛/答题app的原型,该原型使用方便简单,制作完成后,所有交互都已经设定好,您只需要在中继器中导入问题.答案.每题的分数即可完成! 原型演示及下载地址:https://a ...

  3. 答题APP开发解决方案

    随着城市的发展,很多孩子放学后很难聚在一起做作业或讨论问题.当他们遇到不明白的问题时,只能求助于父母.很多家长几乎没有时间和精力来指导孩子的学习,这就导致了学前教育的失误.基于这样的问题,答题APP的 ...

  4. python制作在线答题app_如何做线上答题APP、线上答题APP都有哪些功能呢?

    如何做线上答题APP.线上答题APP都有哪些功能呢? 现如今线上答题的系统接踵而至,让家长和学生们都不知道该如何选择,选择怎么样的是对的是好的,下面就来简单介绍一下对于线上教育APP都应该有哪些功能? ...

  5. node.js+uniapp计算机毕业设计安卓英语答题APP(程序+APP+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  6. Android设计开发 答题app 安卓+后台Java+数据库mysql

    Android设计开发 答题app 安卓+后台Java+数据库mysql 基于安卓设计开发答题系统界面简洁大方 有用户注册,登录模块 主页,答题,选择答案,提交答案等模块 程序已经调试完成,包括前端安 ...

  7. 求助一个手机答题APP

    求助:想用Android studio做一个手机答题APP,可以离线刷题,只有单选题,多选题,判断题,试题在一个Excel文件里面有1000多道,APP最好可以顺序做题,随机做题,模拟考试,错题集等功 ...

  8. 小程序答题APP开发需要具备8大软件功能

    闯关答题APP开发随着智能手机和电脑普及程度的不断提高,在驾校,企业,学校,培训等教育类机构一种非常受欢迎的软件类型是闯关答题游戏.这种游戏通常由一系列挑战组成,玩家需要回答一些问题才能通过每个关卡, ...

  9. 计算机毕业设计PHP+安卓英语答题APP(源码+程序+lw+远程调试)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue ...

最新文章

  1. LeetCode Algorithm 217. 存在重复元素
  2. 英特尔预计第12代酷睿H系列处理器将有超过100款设备采用
  3. poj 1776 Task Sequences
  4. 深入学习卷积神经网络中卷积层和池化层的意义(转)
  5. bias tee电路设计-电容电感值
  6. java web欢迎页 主页 设置为servlet的方法
  7. IETester更新至最新版已经兼容Windows7(附下载地址及Debugbar插件)
  8. 【线性代数笔记】矩阵的特征值和特征向量在哪些变换过程中变化?
  9. 第二讲 中国古代密码艺术
  10. 手机图片、铃声免费下载终极大法
  11. 移动端和前端开发的共性
  12. chapter-2数据库基本知识
  13. php sid打印不出来,pinpoint php 使用不当引发棘手的问题 --psid sid tid pname ptype ah
  14. SLAMTEC—思岚科技CES之行完美收官
  15. 如何在面试中介绍自己的项目经验(面向java改进版)
  16. 香港计算机授课型研究生,香港城市大学授课型研究生的要求高不高啊?
  17. AI对供应链物流有啥影响 听这位业内大牛给你解释
  18. 计算机桌面怎么能添加文字,怎么在电脑桌面上添加文字
  19. 欧美超个性flash网站模板源码
  20. Time Series Forecasting Using GRU Neural Network with Multi-lag After Decomposition

热门文章

  1. lol 新赛季bug。。。bug-1刀秒野怪
  2. la是什么牌子_la是什么牌子,值得购买吗?
  3. 草样年华——北X大的故事理工大风流往事
  4. JMX自定义MXBean
  5. 容器类(自定义容器类,List集合,LinkedList,HashSet)小结
  6. JAVA日期格式化类
  7. DHCP和静态和服务器分别是什么?
  8. 电商中java应用_Redis在电商中的实际应用-Java
  9. 视觉学习笔记7——ZED2安装SDK,并用于ORB-SLAM3
  10. 最出色的5个在线网站推荐,也许你要收藏一下