从数组设置自定义单元格 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)
}
这里是 setCell
在 ViewController
中的实现(在 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)
}
我正在使用 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)
}
这里是 setCell
在 ViewController
中的实现(在 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)
}