解析用户是否已点击按钮

时间:2015-07-31 15:19:53

标签: ios swift parse-platform

我正在尝试使用解析在我的应用中实现类似的功能。如果用户点击了投票按钮。标签增加也改变了解析方面的相同数字。但是,使用我的代码,用户可以多次点击以增加类似内容。我想让它检测到用户已经点击并禁用了类似按钮。为了做到这一点,我在一个名为" Liked"的解析中创建了一个类。我创建了一个用户名,imageId字符串列和likeStatus作为布尔值。但是,我无法做到这样,如果用户喜欢任何图像,它将使用userId,ImageId和likeStatus向其添加新项目。 这是集合视图代码

   func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("newview", forIndexPath: indexPath) as! NewCollectionViewCell
        let item = self.votes[indexPath.row]
        // Display the country name

        if let value = item["imageText"] as? String {
            cell.postsLabel.text = value
        }

        // Display "initial" flag image
        var initialThumbnail = UIImage(named: "question")
        cell.postsImageView.image = initialThumbnail

        cell.complition = {
            self.likeButton(indexPath)
        }

        if let votesValue = item["votes"] as? Int
        {
            cell.votesLabel?.text = "\(votesValue)"
        }

        // Fetch final flag image - if it exists
        if let value = item["imageFile"] as? PFFile {

            cell.postsImageView.file = value
            cell.postsImageView.loadInBackground({ (image: UIImage?, error: NSError?) -> Void in
                if error != nil {
                    cell.postsImageView.image = image
                }
            })
        }
        return cell
    }


    /*
    ==========================================================================================
    Segue methods
    ==========================================================================================
    */

    func likeButton(indexPath:NSIndexPath)
    {
        let cell = self.collectionView.cellForItemAtIndexPath(indexPath) as! NewCollectionViewCell

        let object = self.votes[indexPath.row]

        if let likes = object["votes"] as? Int
        {
            object["votes"] = likes + 1
            object.saveInBackgroundWithBlock{ (success:Bool,error:NSError?) -> Void in
                println("Data saved")

            }
            cell.votesLabel?.text = "\(likes + 1)"
                    }
        else
        {
            object["votes"] = 1
            object.saveInBackgroundWithBlock{ (success:Bool,error:NSError?) -> Void in
                println("Data saved")
            }
            cell.votesLabel?.text = "1"
        }

    }

这是单元格代码

@IBAction func vote(sender: AnyObject) {

    if self.complition != nil
    {
        self.complition!()
    }
}
}

任何提示或我如何在代码中执行此操作?谢谢。

1 个答案:

答案 0 :(得分:0)

我这样做的方法是使用Parse中的一个类,我打电话给#34; UserLikeActivity"或类似的东西,在它,它有一个指向喜欢的用户的列指针,一个指向喜欢的actitivy指针(在我的情况下,它是一个帖子),一个类型(表明它是否是一个upvote ,downvote,follow等),以及指向创建所喜欢活动的用户的指针。

现在,当我查询Parse设置我的表时,我不仅查询包含所有帖子的类,而且我还查询了这个类,然后我保存并用于确定按钮状态。因此,对于每个单元格,如果已经喜欢该活动,我禁用了该按钮。希望这可以帮助您朝着正确的方向前进,因为您已经问了7次这个问题。