从数组设置自定义单元格 uibutton 标题 - Swift

Setting custom cell uibutton titles from an array - Swift

我正在使用 uitableview 自定义单元格。 为了在其中输出信息,我添加了一个 UILabel 和两个 UIButtons。 对于数据结构,我创建了一个自定义 class

class Question {
    var ask: String
    var answers: [String]

    var nextQuestions = [Question?]()

    init(question: String, ans: [String]) {
        self.ask = question
        self.answers = ans
    }

这是我的ViewController添加数据的函数代码

func setupQuestion() {

let q1 = Question(question: "What is your favourite breakfast", ans: ["Pancakes", "Waffles"])
let q2 = Question(question: "What do you have for dinner", ans: ["Steak", "Spaghetti"])

nextQuestions.append(q1)
nextQuestions.append(q2)
}

下面是我如何通过 setCell 函数输出数据

func setCell(Question: String, optionone: [String], optiontwo: [String])
{
    self.mainText.text = Question
    self.optionOne.setTitle(optionone, forState:UIControlState.Normal)
    self.optionTwo.setTitle(optiontwo, forState:UIControlState.Normal)
}

这里是 setCellViewController 中的实现(在 cellForRowAtIndexPath 中)

    let quest = nextQuestions[indexPath.row]
    cell.setCell(quest.question, optionone: quest.ans, optiontwo: quest.ans)

我的问题是 - 因为我在数组中设置了 uibutton 标题 optionone: [String], optiontwo: [String] 我如何在 setCell 函数中正确输出它们及其在 cellForRowAtIndexPath.

非常感谢任何见解。

谢谢!

您有一个 Question 类型的对象数组和一个显示问题信息的自定义单元格。在 cellForRowAtIndexPath 中,只需获取一个问题并将其作为参数传递到自定义单元格 setCell 函数中。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomCell

    let question = nextQuestions[indexPath.row]
    cell.setCell(question)
    return cell
}

setCell 函数中用您的数据填充 UI

func setCell(question: Question)
{
    self.mainText.text = question.ask
    self.optionOne.setTitle(question.answers[0], forState:UIControlState.Normal)
    self.optionTwo.setTitle(optiontwo.answers[1], forState:UIControlState.Normal)
}