2017-04-14 66 views
0

你好,我目前有一個UItableview,並在該tableview中我做了一個包含兩個UIButtons的自定義單元格。這是爲了實現上調和下調功能。我只是想知道如何在用戶單擊它後禁用單元格中的這些uibutton,而不會影響使用相同模板的其他單元格按鈕?如何在UItableviewcell中禁用UIbutton

我試過在uitableviewcell的控制器中運行一個函數。當按鈕被點擊時,我會禁用按鈕,但使用這種方法使我遇到了一個其他單元格按鈕的按鈕也將被禁用的bug。

@IBOutlet weak var down: UIButton! 
@IBOutlet weak var up: UIButton! 


@IBAction func upVoteButton(_ sender: UIButton) 
{ 

    self.up.isEnabled = false 

} 
@IBAction func downVoteButton(_ sender: UIButton) { 

    self.up.isEnabled = false 
} 

請幫忙!提前致謝。

+0

表格單元格是可重複使用只要你滾動新的單元格所以如果你禁用一個可見之前,新的一個也將被禁用。你可以嘗試在單元格自定義類中使用(prepareforreuse)方法並實現你的目標。你可以看看這個函數是如何工作的。 –

回答

2

據我可以認爲我寧願創建一個checkList數組:[Bool],並在視圖中沒有加載方法或任何方法,你試圖設置表,然後配置您的表的長度的數組作爲真正的當@IBAction被稱爲然後做到這一點

let cell = sender.superview?.superview as! UITableViewCell 
    let tableview = cell.superview?.superview as! UITableView; 
    let index = tableview.indexPath(for: cell); 
    let n = index?.section/row // whatever u r using 
    checkList[n] = false; 

現在覆蓋FUNC的tableView(_的tableView:UITableView的,cellForRowAt indexPath:indexPath) - > UITableViewCell的 做到這一點

cell.button.isEnabled = checkList[indexPath.section/row] 
+0

這只是一個概述,而不是確切的代碼,所以如果你面對任何問題,請詢問 – adam

+0

謝謝我會試試這個! – JackieXY

+0

嗨亞當我試着繞過這個方法。我無法在我的IBAction方法中訪問變量checkList。 checklist數組存儲在viewcontroller類中,而IBaction位於UItableviewcell類中。有什麼建議麼?這意味着當我嘗試運行checkList [n] = false。我得到錯誤「使用解析標識符」 – JackieXY

相關問題