我有一个收藏视图,它需要存储哪个按钮被按下。这就好比一个测验,他们有选项A,B,C,D的问题是,它会与此代码选择项:收藏查看收藏按钮按下迅速
extension QuestionCell {
func configure(with model: Question) {
factLabel.text = model.fact
questionLabel.text = model.question
revenueLabel.text = model.revenue
let views = answersStack.arrangedSubviews
for view in views {
view.removeFromSuperview()
}
for (id, answer) in model.answers {
print(index)
let answerLabel = UILabel()
answerLabel.text = answer
answersStack.addArrangedSubview(answerLabel)
let answerButton = UIButton()
answerButton.tag = index
let imageNormal = UIImage(named: "circle_empty")
answerButton.setImage(imageNormal, for: .normal)
let imageSelected = UIImage(named: "circle_filled")
answerButton.setImage(imageSelected, for: .selected)
answerButton.setTitleColor(.black, for: .normal)
answerButton.addTarget(self, action: #selector(answerPressed(_:)), for: .touchUpInside)
answersStack.addArrangedSubview(answerButton)
}
}
不过,如果你刷几次,然后回来这个问题的形象会再次变成白色。我该如何解决这个问题。我还附上了屏幕的外观。
〜感谢
那么如果你每次重新绘制一个新问题的视图时都运行这个循环,那么你每次都用'let answerButton = UIButton()'重新创建新的答案按钮。您需要一种方法来跟踪在构建视图时选择了哪个答案。我建议让自定义的类而不是String的答案,并且您的新的Answer类可以有一个名为文本的属性和一个名为wasSelected,记录用户选择哪一个。如果您对编码不熟悉,并希望详细说明,我可以写出更多的完整答案。 –
@KyleSomers是啊完整的答案将是伟大的,因为它是一个有点混乱的时候:) – John