【发布时间】:2015-08-28 08:15:52
【问题描述】:
我有一个带有自定义 tableViewCell 的 tableView。每个单元格的左侧都有一个图像(参见屏幕 1)。自定义 tableViewCell 已被子类化。每行都有不同的图像,这取决于 indexPath.row
如果我单击屏幕上的图像,图像应更改为复选框,以便用户可以多选(参见屏幕 2)。如果我点击带有勾号的图像,它应该恢复到屏幕 1 上的旧图像。
问题: 我知道如何将图像更改为刻度线,但不知道如何返回旧图像(请记住每一行都有不同的图像 - 所以我下面代码中的“else”部分没有意义)。
以下是我更改和还原图像的代码
@IBAction func imageTap(sender: AnyObject) {
let imageView : UIImageView! = sender.view! as! UIImageView
if imageView.image != UIImage(named: "Oval 5"){
imageView.image = UIImage(named: "Oval 5")
awardBadge.hidden = false
}
else // Need to figure out how to go back to same image
{
imageView.image = UIImage(named: "Oval 1")
awardBadge.hidden = true
}
}
【问题讨论】:
-
else 的情况是否曾经达到?我怀疑图像比较是正确的方法,您应该向单元格(或单元格的容器以说明出队等)添加一些属性,其中包含是否已检查并包含应显示的 UIImage 如果它没有被选中。
-
尝试使用它来比较 2 UIImage
func equal(image1 : UIImage , image2:UIImage) -> Bool { guard let data1 = UIImagePNGRepresentation(image1) else {return false} guard let data2 = UIImagePNGRepresentation(image2) else {return false} return data1.isEqualToData(data2) }也可以覆盖==
标签: ios swift uitableview checkbox swift2