我正在尝试在选中时更改单元格内的图像.这是我在视图控制器中的内容:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell cell.bgImage.image = UIImage(named: "second_image") }
这是我设置图像的地方:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell cell.bgImage.image = UIImage(named: "first_image") }
当我选择单元格时,图像不会更新.我如何让它工作?
问题可能是你在打电话dequeueReusableCellWithIdentifier
.请尝试使用cellForRowAtIndexPath
(有关它的文档).这将为您提供对当前单元格的引用,而不是对新的可重用单元格的引用.
所以,根据你上面的代码:
let cell = self.tableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell
这种类型转换是至关重要的,因为cellForRowAtIndexPath
返回UITableViewCell
,不会有bgImage
成员.
此外,请确保您有一个名为成员bgImage
是一个UIImageView
在你的CustomTableViewCell
类加入@IBOutlet strong var bgImage: UIImageView!
,并且所述IBOutlet
连接在你的情节提要/厦门国际银行.
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let cell = tableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell cell.bgImage.image = UIImage(named: "second_image")}
对于Swift 3+:
func tableView(tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell cell.bgImage.image = UIImage(named: "second_image")}