以编程方式更改表格单元格中按钮的图像

Posted

技术标签:

【中文标题】以编程方式更改表格单元格中按钮的图像【英文标题】:Programmatically change the image of a button in a table cell 【发布时间】:2014-11-04 19:30:48 【问题描述】:

//objectsAry 是 NSManagedObjects

//main view controller

   var nowImg = UIImage(named: "img30.png")

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

        var NuTblCellInst = NuTableViewCell()

        var maincell:UITableViewCell = self.mainList.dequeueReusableCellWithIdentifier("maincell") as NuTableViewCell

        maincell.textLabel.text = self.objectsAry[indexPath.row].valueForKey("itemname") as? String

        //NuTblCellInst.doImgLoad(nowImg!)
        //uncomment the line above = fatal error: unexpectedly found nil while unwrapping an Optional value
        // it doesn't matter if i use the method or use NuTblCellInst.btnWImg.setBackgroungImage directly (unwrapping error either way)

        return maincell
    

// custom tableview cell class

class NuTableViewCell: UITableViewCell 

    @IBOutlet weak var btnWImg: UIButton!

    var nowImg = UIImage(named: "img30.png")

    func doImgLoad(theImg: UIImage) 
        btnWImg.setBackgroundImage(theImg, forState: UIControlState.Normal)
    

    override func awakeFromNib() 
        super.awakeFromNib()
        //doImgLoad(nowImg!)
        //uncomment the line above and it loads the image to the button no problem
    

    override func setSelected(selected: Bool, animated: Bool) 
        super.setSelected(selected, animated: animated)
    

我正在填充一个可重复使用的带文本的单元格,但不确定如何使用情节提要访问放置在表格单元格中的按钮的图像(或背景图像),其中图像将随表格行而变化。

【问题讨论】:

【参考方案1】:

从“...会随表格行变化”,听起来您正在构建一个可重用的模板单元格。

    CustTableViewCell 必须派生自 UITableViewCell 正在情节提要编辑器中编辑模板单元格... 在 Identity Inspector 中,将类设置为您的自定义类 为CustTableViewCell中的按钮创建一个出口 在tableview:cellForRowAtIndexPath 创建/出列maincell 作为CustTableViewCell -- 不是 UITableViewCell 通过插座设置按钮的属性 返回您的实例(当然:-))

cfcustom uitableviewcells in storyboard

【讨论】:

会回来的。可能还要等一下。那么,如果我已经返回了主单元,如何在 CFRAIP 中返回自定义类实例? 你的 CFRAIP 现在是什么样子的? 为答案添加了更多细节 做了一些代码更改并添加了 cmets。我现在可能会调整 UI 方法并回到这个问题。

以上是关于以编程方式更改表格单元格中按钮的图像的主要内容,如果未能解决你的问题,请参考以下文章

在表格视图单元格中以编程方式显示图像

在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像

以编程方式约束表格单元格中的 UILabel

以编程方式在tablerow单元格中添加多个图像

动态表格视图单元格,以编程方式更改子视图高度

以编程方式开始在另一个表格视图单元格中编辑 UITextField