2011-11-10 72 views
-1

我有一個自定義單元格,並在方法numberOfRowsInSection返回100在表格視圖中顯示該自定義單元格。在tableView中顯示100個自定義單元格與UITextField

但是,當我編輯其中一個textfield它也會反映其他文本字段中的更改。 這是我的cellForRowAtIndexPath

NSString *CellIdentifier = @"viewAllProductsGridCell"; 

ViewAllProductsGridCell *cell = (ViewAllProductsGridCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if(cell == nil) { 
    [[NSBundle mainBundle] loadNibNamed:@"ViewAllProductsGridCell" owner:self options:nil]; 

    cell = gridCell;  

} 

代碼U將請告訴我如何創建多個實例爲每個單元

+0

後置代號 - (UITableViewCell的*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath' – Nekto

回答

0

它看起來像你使用你所有的行相同的細胞實例。
您必須爲每一行創建一個單獨的單元實例。

更新:

我通常是多個定製單元做的是以下幾點:

  • 添加一個空的筆尖文件到項目
  • 設置文件的所有者來的UIViewController
  • 將'將UITableViewCell拖放到筆尖空間
  • 將文件的所有者視圖屬性與UITableViewCell實例
  • 不要忘記通過改變其性質 或將控件添加到它
  • 如果你在的UITableViewCell屬性ReuseID設置爲 預設值(如textFieldCell)
  • 自定義您的細胞就像你需要需要對自定義單元格進行復雜的控制,在項目中創建一個來自UITableViewCell的 子類,並添加所需的IBOutlets或IBActions;不要忘了在筆尖更改單元格的 類屬性的MyTextFieldCell

當定製完成後,您可以使用下面的代碼:方法`

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; 

    if (cell == nil) { 
     UIViewController *theController = [[UIViewController alloc] initWithNibName:@"TextFieldCell" bundle:nil]; 
     cell = (MyTextFieldCell *)[[theController.view retain] autorelease]; 
     [theController release]; 

     NSLog(@"Cell created %@", cell); 
    } 

    return cell; 
} 
相關問題