在Swift中parsing投票button

快速浏览我正在做的事情。 我正在制作一个应用程序来显示我的电影评论。 我有一个PFQueryTableviewController我使用自定义单元格。 此表显示来自我的Parse数据库的电影。 在每个单元格中,有3个UIButtons,我希望用户用它来投票(happyVote,OkVote,sadVote)。 在每个button的顶部是一个简单地显示计数的UILabel。

我想如何工作

  1. 当用户按下其中一个button时,投票增加1。
  2. 当用户再次按下相同的button时,投票减less1.或者,
  3. 如果用户按下了不同的button,则第一个button上的投票减less,刚刚按下的button上的投票增加。
  4. 用户只能在其中一个button上投票。
  5. UILabel显示计数,并通过button图像变化显示投票。

看下面的视觉:

在这里输入图像说明

这是我在Parse中添加的内容:

在这里输入图像说明

到目前为止,我已经添加了代码来增加Parse中的投票计数,在我的TableViewController.swift

 @IBAction func upVoteButton(sender: AnyObject) { let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView) let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint) let object = objectAtIndexPath(hitIndex) object!.incrementKey("UpVoteCount") object!.saveInBackground() self.tableView.reloadData() } 

这样的作品,除了用户可以不断增加计数,他们可以在所有3个button上投票。 按下时不会改变button图像。

在我的cellForRowAtIndexPath方法中,我已经把:

  let downVote = object!.valueForKey("DownVoteCount") as! Int cell.downVoteLabel.text = "\(downVote)" let middleVote = object!.valueForKey("MiddleVoteCount") as! Int cell.middleVoteLabel.text = "\(middleVote)" let upVote = object!.valueForKey("UpVoteCount") as! Int cell.upVoteLabel.text = "\(upVote)" 

我已经search了一些如何找出其余的例子,但找不到任何东西,我真的很难找出下一步的步骤。

任何帮助将不胜感激,请让我知道如果你需要/希望看到我的代码。 谢谢

在你的upVoteButton()方法中,你可以添加其他两个button,并在if语句中设置button.enabled = false如:

 if downVoteButton.enabled == true { downVoteButton.enabled = false } else if downVoteButton.enabled == false { downVoteButton.enabled = True } 

然后在middleVoteButton语句中执行与middleVoteButton相同的操作,或者使用相应的button,也可以使用其他button方法漂浮您的船。 这有助于在按下时禁用button,然后在再次按下时启用button。

而对于图像变化,你可以按照这个 。