2011-04-27 52 views
3

我有一個UITableViewController與UITextfield在tableview單元格內。如果我滾動表格視圖,用戶在文本框中輸入的數據就會消失。我試圖將文本字段數據添加到NSMutableArray,但它仍然無法工作。請任何幫助。UITableview滾動擦除UITableviewcell裏面的文本字段中的數據

+0

這是很難解決它沒有code.Try在這裏給一些代碼片段。 – 2011-04-27 17:55:06

回答

4

當調用cellForRowAtIndexPath:時,您返回的單元格必須完全填充任何要顯示的數據。因此,如果單元格包含UITextfield,則需要將它的text屬性設置爲數據中該行的正確值。

當表格單元格消失在屏幕的頂部或底部時,UITableViewCell本身就可以重新使用。 (當你滾動時,單元格消失,出現新的單元格,但UITableView類重新使用UITableViewCell對象。)在cellForRowAtIndexPath:當你獲得一個緩存單元格使用時,你必須確保設置你想要它顯示的所有東西對於有問題的行,否則您可能會在表中看到一些奇怪的行爲。

這有幫助嗎?

編輯:

下面是cellForRowAtIndexPath:使用的典型模式的例子。請注意使用dequeueReusableCellWithIdentifier:。該方法返回一個以前分配但未使用的UITableViewCell,如果有的話。進一步注意,如果沒有緩存的單元格被返回,那麼代碼將創建一個新的單元格,並設置它(與獨立於任何可能特定於行的東西)。在此之後,您需要爲所涉及的行設置單元格。

 
- (UITableViewCell *)tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *SearchResultsCellIdentifier = @"SearchResultsCellIdentifer"; 

    UITableViewCell *cell = [tableView 
       dequeueReusableCellWithIdentifier:SearchResultsCellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
         reuseIdentifier:SearchResultsCellIdentifier] autorelease]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    // Your row-specific setup of the cell here 
    // ... 

    return cell; 
} 

查看文檔以瞭解有關這些方法的詳細信息。蘋果和其他地方有很多關於如何實現tableViews的例子。

+0

感謝您的回覆。我無法理解這一點。 - 當你得到一個緩存的單元格時,你必須確保設置所有你想要顯示的行,否則你可能會在表格中看到一些奇怪的行爲。你能不能讓它更清楚。謝謝 – 2011-04-28 00:55:43

+0

請參閱編輯我添加到我的答案。 – 2011-04-28 01:17:47

+0

再次感謝。我已經做到了。但我的問題是用戶輸入數據,當UITableview單元格向上滾動時,用戶在UItextfield中輸入的數據消失。 – 2011-04-28 02:01:45

相關問題