我正在製作應用程序,在其中列出要顯示的國家/地區。當第一次運行應用程序時,用戶選擇no。的國家。我將該列表存儲在nsuser defaults
中。我想在應用程序第二次再次運行時在TableView
中勾選這些國家/地區。表格視圖中的某些單元格應該勾選?
還有一個問題是,當我滾動TableView
並再次到達上一個位置時,複選標記不顯示。爲什麼會發生?
我正在製作應用程序,在其中列出要顯示的國家/地區。當第一次運行應用程序時,用戶選擇no。的國家。我將該列表存儲在nsuser defaults
中。我想在應用程序第二次再次運行時在TableView
中勾選這些國家/地區。表格視圖中的某些單元格應該勾選?
還有一個問題是,當我滾動TableView
並再次到達上一個位置時,複選標記不顯示。爲什麼會發生?
發生這種情況是因爲表格單元格被重用,因此當您向上滾動時,它們將被下面的數據清除並重新使用,當您再次上移時,所有的事情都會再次發生。
關於第二次再次檢查。 只需將該行的索引存儲在NSUserDefault
中,並將cellForRowAtIndexPath
中的條件存儲在索引匹配時將其保留爲Checked。
希望這有助於..
編碼快樂......
在-tableView:cellForRowAtIndexPath:
你應該設置羯羊或不復選標記應根據內部模型顯示(在你的情況下,來自NSUserDefaults
)。在tableView:didSelectRowAtIndexPath:
中,不要簡單地將複選標記顯示在單元格中,而是存儲在內部模型中。這樣,當一個單元格再次顯示時,它會正確顯示。
這是個不好的建議。不要重複使用單元格,我們希望平滑滾動。 – 2010-10-14 06:50:44
我知道Johan dats爲什麼我只在這條線下面回答他的問題。我知道dat可重用單元格是唯一可取的事情,但我們必須知道如何打破所有的東西。所以我的cellidentifier行只是爲了知識而不是實現。 downvote仍然coz我最終刪除它。感謝您的建議 – 2010-10-14 07:15:41