我有一個UITableView
自定義單元格,這些單元格包含一些文本字段。在這裏,當我在textFields中輸入一些數據,並且我滾動表格視圖數據時,它會消失,我認爲是因爲它每次創建新的單元格。UITableViewCell文本在滾動桌面視圖時消失數據
我解決了這個問題,通過使用數組並插入每個單元格,但是在這裏我無法重用單元格,所以我們浪費了內存。
你能告訴我完美的方式,我應該如何處理這種行爲?
我有一個UITableView
自定義單元格,這些單元格包含一些文本字段。在這裏,當我在textFields中輸入一些數據,並且我滾動表格視圖數據時,它會消失,我認爲是因爲它每次創建新的單元格。UITableViewCell文本在滾動桌面視圖時消失數據
我解決了這個問題,通過使用數組並插入每個單元格,但是在這裏我無法重用單元格,所以我們浪費了內存。
你能告訴我完美的方式,我應該如何處理這種行爲?
這聽起來好像有事情做與如何您正在使用tableView:cellForRowAtIndexPath:
方法創建單元格。但是,如果沒有看到你的實現,我只能提出一般性建議(將你的實現添加到你的問題中,這樣人們可以對他們的答案更具體一些)。
如果你擔心內存中,然後通過下面的方式建立你的細胞使用UITableView's
內置的單元複用功能:
NSString *identifier = @"reuseIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
}
cell.textLabel.text = @"text relating to index path";
以上將檢查tableView
,看是否有重複使用任何可用的細胞。如果沒有,那麼將返回零。這是您使用initWithStyle:reuseIdentifier:
方法創建單元格的方法,該方法將單元格標記爲在滾動出視圖時適合重用。這意味着您只能實例化最多一次可見的單元的總數,這將使您的表的內存佔用空間更好和更低。
注意,我們設置了電池的textField.text
外的零檢查 - 這是保證,如果我們已經檢索到的可重複使用的電池,我們將覆蓋舊文本的內容與所傳遞到方法相關的indexPath
文本內容。
使用一個數組來存儲每個文本字段的值,並設置所需的文本字段的值在
- (UITableViewCell *)tableView:(UITableView *)tTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法