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

Posted

技术标签:

【中文标题】从数组中设置自定义单元格 uibutton 标题 - Swift【英文标题】:Setting custom cell uibutton titles from an array - Swift 【发布时间】:2015-08-20 07:23:59 【问题描述】:

我正在使用 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)

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

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

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

非常感谢任何见解。

谢谢!

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于从数组中设置自定义单元格 uibutton 标题 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中设置自定义UITableviewcell的动态高度

在自定义表格视图单元格中设置 UIButton 的高度

Qt 在 QTableView 中设置自定义小部件

怎么在excel中设置自定义日期格式

停止重复使用自定义单元格 Swift

如何在同一个xib中放置自定义单元格和表格视图?