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

时间:2015-08-20 07:24:00

标签: arrays swift uitableview uibutton custom-cell

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

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)
}

以下是setCell ViewControllercellForRowAtIndexPath的实施情况

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

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

非常感谢任何见解。

谢谢!

1 个答案:

答案 0 :(得分:1)

您有一个类型为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)
}