【发布时间】:2016-03-08 21:11:52
【问题描述】:
简要概述我正在尝试制作的内容。我正在制作一个应用程序来展示我的电影评论。我有一个PFQueryTableviewController,我使用了一个自定义单元格。此表显示来自我的 Parse 数据库的电影。在每个单元格中,有 3 个 UIButtons,我希望用户使用它们来为电影投票(happyVote、OkVote、sadVote)。每个按钮的顶部是一个 UILabel,它只是显示一个计数。
我希望它如何工作
- 当用户按下其中一个按钮时,投票增加 1。
- 当用户再次按下同一个按钮时,投票减 1。或者,
- 如果用户按下了不同的按钮,则第一个按钮的投票会减少,而刚刚按下的按钮的投票会增加。
- 用户只能对其中一个按钮进行投票。
- 投票通过 UILabel 显示计数和按钮图像变化来显示。
见下图:
这是我在 Parse 中添加的:
到目前为止,我已经在我的TableViewController.swift 中添加了增加 Parse 投票计数的代码:
@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)"
我已经搜索了一段时间来寻找一些如何解决其余问题的示例,但找不到任何东西,而且我真的很难弄清楚接下来的步骤。
我们将不胜感激任何帮助,如果您需要/想要查看我的代码,请告诉我。谢谢
【问题讨论】:
-
要让这个功能正常工作,我需要用户登录吗,因为如果我们刷新应用程序,用户会看到他不喜欢它,如果再次喜欢它,计数会增加。
标签: ios swift parse-platform uibutton pfquerytableviewcontrolle