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

时间:2014-11-04 19:30:49

标签: ios swift tableview

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

我正在使用上面的文本填充可重复使用的单元格,但不知道如何使用故事板访问放置在表格单元格中的按钮的图像(或背景图像),其中图像将随表格行而变化。 / p>

1 个答案:

答案 0 :(得分:0)

从'...将随表格行而变化,'听起来你正在建立一个可重复使用的模板单元。

  1. CustTableViewCell必须来自UITableViewCell
  2. 在情节提要编辑器中编辑模板单元格...
      在Identity Inspector中
    • ,将类设置为自定义类
    • CustTableViewCell
    • 中为按钮创建一个插座
  3. tableview:cellForRowAtIndexPath
    • 创建/出列maincellCustTableViewCell - UITableViewCell
    • 通过插座设置按钮上的属性
    • 返回您的实例(当然:-))
  4. cf custom uitableviewcells in storyboard