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

标签 arrays swift uitableview custom-cell

我有一个带有自定义单元格的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/

相关文章:

ios - 将 TableView (行选择)的数据传递给 View Controller

iphone - 创建自定义 MCBrowserViewController

c# - 如何按字母对字符串数组进行排序?

java - 如何在不同的类中获取2个ArrayList?

css - 如何使文本与类别数组一起迭代

ios - 错误 : unable to load standard library for target 'arm64-apple-ios10.0-simulator' ?

ios - 无法在表格 View 自定义单元格中获取文本字段文本

c++ - 如何将读取的数据添加到数组?

xcode - MKMapView 不被称为 Swift ios 8

ios - 设置 didSet 的问题