如何在Swift中删除多项选择题测验中的一个错误选项
我正在尝试制作一个测验应用程序 我想添加一个额外的提示功能,当用户按下旁边的提示按钮后,测验应用程序的一个选项消失。然而,现在当我按下提示按钮时,我所有的选项都消失了。我怀疑这是因为我的如何在Swift中删除多项选择题测验中的一个错误选项,swift,Swift,我正在尝试制作一个测验应用程序 我想添加一个额外的提示功能,当用户按下旁边的提示按钮后,测验应用程序的一个选项消失。然而,现在当我按下提示按钮时,我所有的选项都消失了。我怀疑这是因为我的if语句错误 var currentQuestion = 0 var rightAnswerPlacement:UInt32 = 0 //hint button, making the option disappear @IBAction func hintButtonTapped(_ sender: Any
if
语句错误
var currentQuestion = 0
var rightAnswerPlacement:UInt32 = 0
//hint button, making the option disappear
@IBAction func hintButtonTapped(_ sender: Any) {
for actionButton in actionButtons {
if actionButton.currentTitle != String(rightAnswerPlacement)
//this if condition is wrong, rightAnswerPlacement is a tag/ number where the correct answer lies (i think )
{
actionButton.isHidden = true // true to hide the button
}
}
}
@IBOutlet weak var hintButton: UIButton!
//Label for qs
@IBOutlet weak var label: UILabel!
//button for choices
@IBOutlet var actionButtons: [UIButton]!
@IBAction func Action(_ sender: AnyObject)
{
if (sender.tag == Int(rightAnswerPlacement))
{
print("Right")
}
else
{
print("Wrong")
let alert = UIAlertController(title: "That is incorrect", message: "Try again!", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Dismiss", style: .cancel, handler: nil))
present(alert, animated: true)
currentQuestion -= 1
//how to record which wrong answer the user is pressing
//let WrongAnswer = sender.tag.titleLabel?.text
}
}
任何帮助都将不胜感激,谢谢 如果您使用
rightAnswerPlacement
作为您不想隐藏的按钮的标记,那么您可以在答案数量范围内生成一个随机数,但不包括rightAnswerPlacement中的标记
请在ViewController外部添加此扩展:
extension Int {
static func random(upperBound: Int, avoidingNumber: Int) -> Int {
guard upperBound > 0 else { return 0 }
var number = Int.random(in: 0...upperBound - 1)
if number == avoidingNumber {
number = upperBound
}
return number
}
使用此扩展,当用户点击提示按钮时,您应该为要隐藏的错误答案生成一个随机数,然后找到带有刚刚生成的随机标记的按钮并将其隐藏
let randomTag = Int.random(upperBound: 3, avoidingNumber: rightAnswerPlacement)
for actionButton in actionButtons where actionButton.tag == randomTag {
actionButton.isHidden == true
}
这样,当有人按下提示按钮时,一个随机的错误答案将始终隐藏。hi rightAnswerPlacement实际上是一个变量,是我正确答案的占位符,因此我想隐藏除正确答案之外的其他三个选项中的任何一个。因此,在使用您的建议之后,我的代码正在做所有的选择,但一个消失,我只想一次消失一个选项嗨!我现在明白了,请检查我编辑过的答案,希望它对我有帮助,这肯定对我的情况有帮助谢谢你的帮助,真的很感激!我很高兴这有帮助!如果我的答案能解决你的问题,请你将我的答案标记为选中,我将不胜感激。问候语!