1

我有两个问题

1) 如果我不注释掉 if(cell==nil) 那么文本标签不会显示在我手机上的一个表格视图中。

2)另一个我有同样的问题,但如果我把这个注释掉了,文本似乎没有改变。但是,如果我

 NSLog(@"did select  and the text is %@",[tableView cellForRowAtIndexPath:indexPath].textLabel.text);

我得到输出“确实选择并且文本是'站点编号 1'”这是我想要的,但是我在电话屏幕上看到的文本不是我在控制台中看到的任何人都可以帮忙吗?这是我的代码:

我在表格视图的属性检查器中的单元格标识符是“selcell”

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    int row=indexPath.row;
    NSLog(@"number in sites is %d cell for row %@",[sites count],[sites objectAtIndex:row]);

    static NSString *CellIdentifier = @"selcell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
   // if(cell==nil)
   // {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.text=[NSString stringWithFormat:@"site number %@",[sites objectAtIndex:row]];
   // }
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"did select  and the text is %@",[tableView cellForRowAtIndexPath:indexPath].textLabel.text);
    [self.delegate didSelectSite:[sites objectAtIndex:indexPath.row]];
}
4

1 回答 1

0

在表格视图中有重用单元格的概念。并且 if 块 cell==nil 仅在没有单元格可供表格视图重用时运行。

因此,无论您使用的是新分配的单元格还是重复使用的单元格,您仍然需要为单元格设置标题。

从 if 块中取出以下行,看看它是否有效:

    cell.textLabel.text=[NSString stringWithFormat:@"site number %@",[sites objectAtIndex:row]];
于 2013-06-09T02:13:26.340 回答