使用Prototype Cell和UITableView的问题

时间:2012-10-20 06:41:21

标签: uitableview

我有两种单元格,一种是标准的标题字幕单元格,另一种是带有两个UITextField的自定义单元格。它们有不同的标识符,VIEW和EDIT。

在我的代码中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

我需要创建两种单元格。在任何时候,我只有一个单元格在编辑,所以我创建了一个NSUInteger来跟踪正在编辑的单元格。

我的代码如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell* cell;
    if ( rowInEdit == indexPath.row )
    {
        cell = [tableView dequeueReusableCellWithIdentifier:@"EDIT"];
        if ( !cell )
        {
            cell = [[UITableViewCell alloc]init];
        }
        RLSite* site = [[RLSettings settings]siteAtIndex:indexPath.row];
        [[cell textLabel]setText:site.name];
        [[cell detailTextLabel]setText:site.url];
    }
    else
    {
        cell = [tableView dequeueReusableCellWithIdentifier:@"VIEW"];
        if ( !cell )
        {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"VIEW"];
        }
        RLSite* site = [[RLSettings settings]siteAtIndex:indexPath.row];
        [[cell textLabel]setText:site.name];
        [[cell detailTextLabel]setText:site.url];
    }
    return cell;
}

请注意,我的第一部分肯定是有缺陷的。我不知道如何使用原型创建单元格,以及如何为其分配reuseIdentifier。此外,我不知道如何在创建后访问该单元格中的UITextField

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

how to create a cell with prototype您可以按照这些教程进行操作,因为我也从其中一个教程中学习了

教程

  1. First one我提到过。
  2. Second one
  3. 为了超出添加的文本视图,您需要为它们分配标记值(显然不同)。 然后使用下面的代码将它们放在tableView:cellForRowAtIndexPath:方法旁边。

    UITextField *txtField = (UITextField *)[cell viewWithTag:8];
    

    此处将8替换为您的代码值:)