gpt4 book ai didi

arrays - 根据用户在 Swift 中的选择从数组加载自定义单元格值

转载 作者:行者123 更新时间:2023-11-30 10:12:48 26 4
gpt4 key购买 nike

我有一个带有自定义单元格的uitableview。自定义单元格包含一个标签和两个按钮。对于每个对象(标签、uibuttons),我从三个单独的数组中加载单独的值。

Label = [which fruit do you prefer?, Apple which color?, Orange which color?,    
orange which price?, Apple which price?]
Uibutton1 = [apple, green, deep orange, 5.99, 4.99]
Uibutton2 = [orange, red, yellow, 2.99, 1.99]

我的目标是将所有三个对象的第一个值加载到单元格中,然后根据用户的选择附加单元格值。

例如,如果第一个问题是你更喜欢哪种水果?

用户回复橙色单元格并加载第三个对象(用于 uilabel 和两个 uibuttons),这将导致

橙色是什么颜色?

深橙色黄色

任何想法都将不胜感激。

谢谢。

最佳答案

我建议使用枚举和计算属性:

enum Question {
case WhichFruit, AppleColor, OrangeColor, ApplePrice, OrangePrice
}
var currentQuestion: Question = .WhichFruit {
didSet { updateTitles() }
}

var questionText: String {
switch currentQuestion {
case .WhichFruit: return "Which fruit do you prefer?"
case .AppleColor, .OrangeColor: return "Which color?"
case .ApplePrice, .OrangePrice: return "Which price?"
}
}
var button1Text: String {
switch currentQuestion {
case .WhichFruit: return "Apple"
case .AppleColor: return "Green"
case .OrangeColor: return "Deep Orange"
case .OrangePrice: return "5.99"
case .ApplePrice: return "4.99"
}
}
//continue for button2
//...

然后,加载初始数据:

override func viewDidLoad() {
currentQueston = .WhichFruit
}
private func updateTitles() {
questionLabel.text = questionText
buttonOne.setTitle(button1Text, forState: UIControlState.Normal)
buttonTwo.setTitle(button2Text, forState: UIControlState.Normal)
}

然后在按钮操作中,更新 currentQuestion 并再次调用 updateTitles。

func buttonOneWasPressed {
switch currentQuestion {
case .WhichFruit: //selected Apple
currentQuestion = .AppleColor
}
//other cases here
}

希望这有帮助!

关于arrays - 根据用户在 Swift 中的选择从数组加载自定义单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com