我有一个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()
}
答案 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
如果这仍然不起作用,请发表评论并继续提供帮助。如果确实有效,请不要忘记检查我的答案。