我有一個收藏視圖,它需要存儲哪個按鈕被按下。這就好比一個測驗,他們有選項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