如何在重新加载应用后禁止用户喜欢帖子?

时间:2015-12-01 18:11:41

标签: ios swift parse-platform tableview pfquery

在我viewController PFQueryTableViewController中,我正在尝试为最初启用的TableViewCell中的帖子创建一个类似按钮的功能,但在用户喜欢这个帖子之后,我们有一个Parse中的PFRelation(userLike)。当用户喜欢应用上的帖子时,再次重新加载应用后,用户可以再次喜欢它。我不希望用户再次喜欢它。当重新加载应用程序时,我想在按下之后让like按钮自动禁用,同时检查当前用户的Parse以查看他们是否已经喜欢该帖子。我的代码中是否需要执行某些操作来禁止用户再次喜欢同一篇文章?我已粘贴下面的代码以获得更好的主意

评论的陈述是我试图用来实现该功能的。

    @IBAction func likeButton(sender: UIButton) {

        //let object: PFObject = self.objects?[sender.tag] as! PFObject

        let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView)
        let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint)
        let object = objectAtIndexPath(hitIndex)

        if sender.enabled == true{


            disableButton(sender)


            object!.incrementKey("count", byAmount: 1)

            self.userLike?.addObject(object!)
            globalLikeList.append(object!)


        } else {


            enableButton(sender)


            object!.incrementKey("count", byAmount: -1)

            self.userLike?.removeObject(object!)

            if let index = globalLikeList.indexOf(object!) {
                globalLikeList.removeAtIndex(index)
            }

        }

//        let hitPoint = sender.convertPoint(CGPointZero, toView: self.tableView)
//        let hitIndex = self.tableView.indexPathForRowAtPoint(hitPoint)
//        let object = objectAtIndexPath(hitIndex)
//        self.userLike?.addObject(object)
//        tweet.addObject(object)

        object!.saveInBackground()

        self.tableView.reloadData()
        PFUser.currentUser()?.saveInBackground()
        NSLog("Top Index Path \(hitIndex?.row)")
    }

我们还初始化了一个全球数组,喜欢存储那些“喜欢”的对象

var globalLikeList: [PFObject] = []

这也是我们在tableView中所做的。这是我相信我已经配置了类似按钮的地方:

override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?, object: PFObject!) -> PFTableViewCell? {
   let cell = tableView!.dequeueReusableCellWithIdentifier("tweetCell", forIndexPath: indexPath!) as! tweet

    if let tweet : PFObject = self.tweets.objectAtIndex(indexPath!.row) as! PFObject {


    if let likeScore = object[("count")] as? Int {
            cell.likeCount.text = "\(likeScore)"
        }

        if globalLikeList.contains(object!) {

            cell.likeButton.selected = true

        } else {
            cell.likeButton.selected = false
        }
        cell.likeButton.tag = indexPath!.row


        }

        }



    return cell
}

1 个答案:

答案 0 :(得分:0)

检查您是否已经喜欢该帖子后,您有cell.likeButton.selected = true。我想你想要cell.likeButton.enabled = false