无法更改UIButton图片

时间:2016-01-24 21:41:51

标签: ios swift uitableview uibutton

我有一个tableView,其中我发布用户提要,我在单元格视图中添加了一个心形按钮。我为单元格视图创建了一个类,并在那里声明了我的@IBOutlet按钮。然后在tableview的cellForRowAtIndexPath中,我调用了按钮,并为indexpath.row设置了按钮本身的标签号。然后我添加了一个目标,其中包含要执行的操作并创建了我的@IBAction。现在我试图将心形按钮的图像外观改为红色,但没有任何反应。是否有问题通过发件人将UIImage传递给按钮。我没有错。并且if like =语句正常工作。这是我的代码:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! PostsCellTableViewCell

        cell.heartButton.tag = indexPath.row
        cell.heartButton.addTarget(self, action: "liked:", forControlEvents: .TouchUpInside)
return cell
}

@IBAction func liked (sender: UIButton){

        if like == false{
        sender.imageView?.image = UIImage(contentsOfFile: "red-heart.png")
            like = true
        }
        else{
            sender.imageView?.image = UIImage(contentsOfFile: "white-heart-hi.png")
            like = false
        }
       // self.tableView.reloadData()
    }

2 个答案:

答案 0 :(得分:2)

试试这个。

    if like == false{
        sender.setImage(UIImage(named: "red-heart.png"), forState: .Normal)
        like = true
    } else {
        sender.setImage.setImage(UIImage(named: "white-heart-hi.png"), forState: .Normal)
        like = false
    }

答案 1 :(得分:-1)

这是一个非常简单的错误。您将目标函数声明为"喜欢:",但您的函数声明为"喜欢"。注意第二次缺少冒号。这很关键,应该解决问题。如果这不能解决问题,请确保已声明

var like = false

如果这仍然不起作用,请发表评论并继续提供帮助。如果确实有效,请不要忘记检查我的答案。