【问题标题】:How to disable user from liking a post after reloading app?如何在重新加载应用程序后禁止用户点赞帖子?
【发布时间】:2015-12-01 18:11:41
【问题描述】:

在我的viewControllerPFQueryTableViewController)中,我正在尝试在最初启用的 TableViewCell 中为我的帖子创建一个点赞按钮功能,但在用户点赞帖子后,我们有一个 PFRelation(userLike)在 Parse 中。当用户点赞应用上的帖子时,再次重新加载应用后,用户可以再次点赞。我不希望用户再次喜欢它。重新加载应用程序时,我希望喜欢按钮在按下后自行禁用,同时检查 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 中所做的。这是我相信我已经配置了like按钮的地方:

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
}

【问题讨论】:

    标签: ios swift parse-platform tableview pfquery


    【解决方案1】:

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

    【讨论】:

    • 那行不通。我仍然可以再次点赞用户的帖子。
    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多