我正在使用SWIFT“添加到收藏页面”。在我的产品列表中,有“Wish”按钮。该按钮是从Storyboard拖动的。如果用户单击该按钮,则该图像将更改为另一个新图像。我做到了这一部分,完全正常工作。但是,如果我们滚动tableview,则自动将另一个单元格按钮图像更改为新图像。我不知道怎么样,为什么?怎么解决这个?请指导我。
//MY CODING IS BELOW
unc tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell1 = product_tableview.dequeueReusableCellWithIdentifier("productmain", forIndexPath: indexPath) as product_tblCell
image_url = arrayFromJson[indexPath.row].valueForKey("image_url") as NSString
let imgurl = NSURL(string: image_url)!
var imgdata : NSData = NSData(contentsOfURL: imgurl)!
prod_img = UIImage(data: imgdata)!
id = String(arrayFromJson[indexPath.row].valueForKey("id") as NSInteger)
code = arrayFromJson[indexPath.row].valueForKey("code") as NSString
descrip = arrayFromJson[indexPath.row].valueForKey("description") as NSString
name = arrayFromJson[indexPath.row].valueForKey("name") as NSString
price = String(arrayFromJson[indexPath.row].valueForKey("price") as NSInteger)
cell1.name.text = name
cell1.prod_desc.text = descrip
cell1.prod_price.text = price
cell1.prod_image.image = prod_img
cell1.wish_image_but.addTarget(self, action : Selector("to_wish_list:"), forControlEvents: UIControlEvents.TouchUpInside)
return cell1
}
func to_wish_list(sender : UIButton)
{
var img = UIImage(named: "wish_2.png")
sender.setImage(img, forState: UIControlState.Normal)
sender.enabled = false
}
答案 0 :(得分:0)
原因是当你滚动tableview并且你的单元格超出可见边界时,它用于显示另一个数据。当它回来时可见边界,它的数据再次被设置。
这意味着,您必须检查该单元格是否已标记为" to_wish_list"在设置单元格数据时。如果是,则默认设置UIImage(名称为" wish_2.png"),否则设置defult image。