【问题标题】:Voting buttons with Parse in Swift在 Swift 中使用 Parse 投票按钮
【发布时间】:2016-03-08 21:11:52
【问题描述】:

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

我希望它如何工作

  1. 当用户按下其中一个按钮时,投票增加 1。
  2. 当用户再次按下同一个按钮时,投票减 1。或者,
  3. 如果用户按下了不同的按钮,则第一个按钮的投票会减少,而刚刚按下的按钮的投票会增加。
  4. 用户只能对其中一个按钮进行投票。
  5. 投票通过 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


【解决方案1】:

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

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

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

图片更换可以关注this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    相关资源
    最近更新 更多