我使用自定义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,表示目前在表中没有看到的所有单元格。
答案 0 :(得分:0)
在循环中,您使用的是类UITableView
的方法cellForRowAtIndexPath:
。如果单元格不可见,则此方法返回nil
,如文档所示:
返回值
表示表格单元格的对象或 nil(如果单元格不可见或indexPath超出范围)。
您认为正在使用的方法是协议UITableViewDataSource
的委托方法tableView:cellForRowAtIndexPath:
。