【发布时间】:2015-12-01 18:11:41
【问题描述】:
在我的viewController(PFQueryTableViewController)中,我正在尝试在最初启用的 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