2017-03-18 37 views
0

我有一個表視圖,我希望用戶只從表視圖中選擇一個項目,然後我想爲該單元格添加複選標記。同時,我還希望其他單元格上的複選標記消失,因此。用戶一次只能選擇一個。然後我想保存數據(最好使用UserDefaults)。我怎麼做?如何在Swift中保存UITableViewCell附件複選標記的狀態3

回答

1

創建一個IndexPath類型的類變量。在您的cellForRowAt方法中,只有在索引路徑與類變量匹配時才設置.checkmark附件類型,否則爲.none。在didSelectRowAt方法更新選定變量的indexPath,只是重新加載tableview中

+0

我得到這個錯誤,代碼和調試器輸出這裏的截圖使用:HTTPS://www.dropbox .com/s/jlqucl40piso7e5/save%20checkmark%20accessory.png?dl = 0 –

+0

您不需要在用戶默認值中保存indexPath ...您可以簡單地創建一個類變量。在屏幕截圖中,您將索引路徑存儲在用戶默認值中...您想要以用戶默認值保存哪些數據? –

+0

我想保存所選行的索引路徑,以便在刷新表視圖時,我可以從用戶默認值中獲取indexpath,並根據該索引路徑設置附件複選標記 –

0

你應該以這種方式

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{ 
    let sgp : UITableViewCell = tableView.cellForRow(at: indexPath)! 
    sgp.accessoryType = .checkmark 
} 
相關問題