簡體   English   中英

阻止cellForRowAtIndexPath被調用

[英]Stop cellForRowAtIndexPath from being called

我的應用程序中有一個表格視圖,其中單元格每個單元格僅包含一個textview。 這些文本視圖使用存儲在NSUserDefaults中的文本填充。 用戶可以更改文本,然后再次保存。 來自NSUserDefaults的文本數組(用於填充文本視圖的文本)在viewDidLoad處加載。 但是,單元格中文本視圖的文本是在cellForRowAtIndexPath中設置的。 問題是,每當用戶滾動表格視圖時都會調用cellForRowAtIndexPath ,因此,如果他/她正在編輯textViews之一並在仍然鍵入時滾動,則所有內容都會消失,因為調用cellForRowAtIndexPath並從已加載的已保存數據中設置了textViews文本在viewDidLoad

所以..我想也許讓cellForRowAtIndexPath僅更改一次文本視圖的文本(在應用程序啟動時)就可以解決問題,但是事實證明,每個單元格都單獨調用cellForRowAtIndexPath 這樣就可以了,但是只加載了第一個單元格的textView的文本,因為我只讓cellForRowAtIndexPath做一次。

我的問題是:僅在調用viewDidLoad時,如何才能讓cellForRowAtIndexPath更改所有單元格的textView文本? 還是可以通過viewDidLoad方法為每個單元格設置textView的文本? 這樣可以清楚地解決問題。

每當用戶在您的一個單元格中的textview中更改文本時-立即將該文本保存到您的textArray中。 現在,如果用戶滾動離開,然后返回到該單元格-該單元格將包含更新的文本。 然后,當用戶在此屏幕上完成文本的編輯時,將所有更改保存到NSUserDefaults(例如,您可以將其保存在viewWillDisappear中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM