我有一個UITableView
高得足以使它需要滾動。表中最頂端的單元格包含一個UITextField
供用戶輸入一些文本。UITableViewCell內的UITextField - 防止文本重置的方法
建立此的標準方法可能是創建並添加文本字段並將其添加到在cellFOrRowAtIndexPath:
中創建或回收的單元格中。但是,此不斷重新創建意味着在單元格中輸入的文本被刪除滾出並返回到視圖中。
到目前爲止我發現的解決方案建議使用UITextField
代表團跟蹤文本,因爲它會更改並將其存儲在iVar或屬性中。我想知道爲什麼這是建議,而不是我正在使用的更簡單的方法:
我在UITableViewController
的init方法中創建UITextField
,並立即將其存儲在屬性中。在cellFOrROwAtIndexPath
我只是添加預先存在的字段,而不是初始化一個新的字段。單元本身可以被回收而沒有問題,但因爲我總是使用唯一的UITextField
,所以內容被保留。
這是一個合理的方法嗎?什麼可能會出錯?任何改進(也許我仍然可以在cellForRowAtIndexPath
中創建該字段,但首先檢查該屬性是否爲零)
謝謝,但這並沒有解決嵌入細胞的文本字段。 –
您可以將第一個單元格存儲爲創建時的類屬性之一,並隨時訪問其內容。重點是一旦創建它將不會被重用,並且其內容不會被刪除。 – clubifaximatic
你很對 - 這比使用init更好。另外,我可以將textview本身存儲爲屬性而不是單元格。如果有的話,這會重新強調我的問題 - 因爲如果我有很多文本標籤,我仍然認爲你的方法比使用委託更好。希望有人會解釋爲什麼不。 –