我正在尝试使用解析在我的应用中实现类似的功能。如果用户点击了投票按钮。标签增加也改变了解析方面的相同数字。但是,使用我的代码,用户可以多次点击以增加类似内容。我想让它检测到用户已经点击并禁用了类似按钮。为了做到这一点,我在一个名为" 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!()
}
}
}
任何提示或我如何在代码中执行此操作?谢谢。
答案 0 :(得分:0)
我这样做的方法是使用Parse中的一个类,我打电话给#34; UserLikeActivity"或类似的东西,在它,它有一个指向喜欢的用户的列指针,一个指向喜欢的actitivy指针(在我的情况下,它是一个帖子),一个类型(表明它是否是一个upvote ,downvote,follow等),以及指向创建所喜欢活动的用户的指针。
现在,当我查询Parse设置我的表时,我不仅查询包含所有帖子的类,而且我还查询了这个类,然后我保存并用于确定按钮状态。因此,对于每个单元格,如果已经喜欢该活动,我禁用了该按钮。希望这可以帮助您朝着正确的方向前进,因为您已经问了7次这个问题。