2016-03-08 48 views
0

快速概覽我正在嘗試做什麼。我正在製作一個應用程序來顯示我的電影評論。我有一個PFQueryTableviewController其中我使用自定義單元格。此表顯示來自我的Parse數據庫的電影。在每個單元格中,有3個UIButtons,我希望用戶用它來爲電影投票(happyVote,OkVote,sadVote)。在每個按鈕的頂部是一個簡單顯示計數的UILabel。在Swift中解析投票按鈕

我怎麼想它的工作

  1. 當用戶按下一個按鈕,通過1
  2. 當用戶再次按下同一按鈕投票的增加,投票減1或者,
  3. 如果用戶按下了不同的按鈕,則第一個按鈕上的投票減少,而剛剛按下的按鈕上的投票增加。
  4. 用戶只能在其中一個按鈕上進行投票。
  5. 投票由顯示計數的UILabel和按鈕圖像更改顯示。

請參閱以下可視:

enter image description here

這是我在解析已經添加了:

enter image description here

到目前爲止,我已經添加了代碼來增加Parse中的投票計數,在我的TableViewController.swift

@IBAction func upVoteButton(sender: AnyObject) { 

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

    let object = objectAtIndexPath(hitIndex) 
    object!.incrementKey("UpVoteCount") 
    object!.saveInBackground() 
    self.tableView.reloadData() 

} 

這類作品除用戶可以不斷增加計數外,還可以對所有3個按鈕進行投票。按下時它不會更改按鈕圖像。

在我cellForRowAtIndexPath方法,我已經把:

let downVote = object!.valueForKey("DownVoteCount") as! Int 
    cell.downVoteLabel.text = "\(downVote)" 
    let middleVote = object!.valueForKey("MiddleVoteCount") as! Int 
    cell.middleVoteLabel.text = "\(middleVote)" 
    let upVote = object!.valueForKey("UpVoteCount") as! Int 
    cell.upVoteLabel.text = "\(upVote)" 

...我已經尋找了一段有關如何其餘找出一些例子,但無法找到任何東西,我真的正在努力想出下一步措施。

任何幫助將不勝感激,並請讓我知道如果你需要/希望看到我的代碼。由於

+0

爲了讓這個功能起作用,我是否需要用戶登錄,因爲如果我們刷新應用程序,用戶會看到它不被他喜歡,如果再次喜歡它,計數會增加。 –

回答

0

在你upVoteButton()方法,你可以添加其他兩個按鈕和設置他們button.enabled = false內部的if語句,如:

if downVoteButton.enabled == true { 
    downVoteButton.enabled = false 
} else if downVoteButton.enabled == false { 
    downVoteButton.enabled = True 
} 

而且做的middleVoteButton相同的antoher if語句或相同,無論使用適當的按鈕也可以漂浮在其他按鈕方法中。這有助於在按下時禁用按鈕,然後在再次按下時啓用按鈕。

而對於圖像更改,您可以按照this