UITableViewCell得到零

时间:2012-03-25 10:59:49

标签: iphone objective-c

我使用自定义UITableViewCell创建一个UITableView,这就是我在cellForRowAtIndexPath中创建单元格的方式:

static NSString *CellIdentifier = @"SongsCell";
    SongsCell *cell = (SongsCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil){
        UIViewController *vc = [[[UIViewController alloc] initWithNibName:@"SongsCell" bundle:nil] autorelease];
        cell = (SongsCell *) vc.view;
    }

现在我想在按下按钮时获取表信息中的所有单元格(来自单元格的参数):

for (int i = 0; i < [songTable numberOfRowsInSection:0]; i++)
{

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
    UITableViewCell *cell = [songTable cellForRowAtIndexPath:indexPath];
}

现在我遇到一个问题,就是这个循环给了cell一个nil,表示目前在表中没有看到的所有单元格。

1 个答案:

答案 0 :(得分:0)

在循环中,您使用的是类UITableView的方法cellForRowAtIndexPath:。如果单元格不可见,则此方法返回nil,如文档所示:

  

返回值
  表示表格单元格的对象或 nil(如果单元格不可见或indexPath超出范围)。

您认为正在使用的方法是协议UITableViewDataSource的委托方法tableView:cellForRowAtIndexPath: