uitableview单元格空白但控制台中的文本正确

时间:2013-06-09 00:30:18

标签: ios uitableview textlabel

我有两个问题

1)如果我没有注释掉if(cell == nil)那么文本标签就不会出现在我手机上的一个桌面视图中。

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

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

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

tableview的属性检查器中的单元格标识符是“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]];
}

1 个答案:

答案 0 :(得分:0)

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

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

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

    cell.textLabel.text=[NSString stringWithFormat:@"site number %@",[sites objectAtIndex:row]];