使用Swift中的Parse投票按钮

时间:2016-03-08 21:11:53

标签: ios swift parse-platform uibutton pfquerytableviewcontrolle

快速了解我想要制作的内容。我正在创建一个应用来展示我的电影评论。我有一个PFQueryTableviewController我使用自定义单元格。此表显示来自我的Parse数据库的电影。在每个单元格中,有3个UIButton,我希望用户使用它来为电影投票(happyVote,OkVote,sadVote)。在每个按钮的顶部是一个简单显示计数的UILabel。

我希望它如何运作

  1. 当用户按下其中一个按钮时,投票会增加1。
  2. 当用户再次按下相同的按钮时,投票减少1.或者,
  3. 如果用户按下了其他按钮,则第一个按钮的投票会减少,而按下按钮的投票会增加。
  4. 用户只能在其中一个按钮上投票。
  5. 投票由UILabel显示,显示计数,按钮图像更改。
  6. 请参见下面的视觉效果:

    enter image description here

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

    enter image description here

    到目前为止,我已在我的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)"
    

    我已经搜索了一些关于如何计算剩余部分的例子,但是找不到任何东西,我真的很难想出下一步。

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

1 个答案:

答案 0 :(得分:0)

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

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

对于antoher if语句中的middleVoteButton执行相同操作,无论您的船是什么,也可以使用相应按钮在其他按钮方法中执行相同操作。这有助于在按下时禁用按钮,然后在再次按下时启用它。

对于图像更改,您可以关注this