0

快速概述我正在尝试制作的内容。我正在制作一个应用程序来显示我的电影评论。我有一个PFQueryTableviewController我使用自定义单元格的。此表显示来自我的 Parse 数据库的电影。在每个单元格中,有 3 个 UIButtons,我希望用户使用它们来为电影投票(happyVote、OkVote、sadVote)。每个按钮的顶部是一个 UILabel,它只是显示一个计数。

我希望它如何工作

  1. 当用户按下其中一个按钮时,投票增加 1。
  2. 当用户再次按下相同的按钮时,投票减少 1。或者,
  3. 如果用户按下了不同的按钮,则第一个按钮的投票减少,而刚刚按下的按钮的投票增加。
  4. 用户只能对其中一个按钮进行投票。
  5. 投票由显示计数的 UILabel 和更改的按钮图像显示。

请参阅下面的视觉效果:

在此处输入图像描述

这是我在 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 个按钮进行投票。按下时它不会更改按钮图像。

在我的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)"

我已经搜索了一段时间来寻找一些如何解决其余问题的示例,但找不到任何东西,而且我真的很难弄清楚接下来的步骤。

任何帮助将不胜感激,如果您需要/想要查看我的代码,请告诉我。谢谢

4

1 回答 1

0

在您的upVoteButton()方法中,您可以添加其他两个按钮并将它们设置button.enabled = false在 if 语句中,例如:

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

并且对middleVoteButtonin antoher if 语句或相同的语句执行相同的操作,无论您的船漂浮在哪里,也可以在其他按钮方法中使用适当的按钮。这有助于在按下时禁用按钮,然后在再次按下时启用它。

对于图像更改,您可以按照操作。

于 2016-03-08T21:40:36.160 回答