我正在使用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
ViewController
中cellForRowAtIndexPath
的实施情况
let quest = nextQuestions[indexPath.row]
cell.setCell(quest.question, optionone: quest.ans, optiontwo: quest.ans)
我的问题是 - 因为我在数组uibutton
中设置了optionone: [String], optiontwo: [String]
个标题如何在setCell
函数中正确输出它们及其在{{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)
}