2012-03-25 47 views
0

我创建一个自定义的UITableViewCell一个UITableView,我就是这样在cellForRowAtIndexPath创建单元格:UITableViewCell中获得零

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一比零对于目前未在表中看到的所有细胞的一个问题。

+0

我想循环表中的所有单元格。 – MTA 2012-03-25 11:19:24

+0

你为什么要循环通过细胞?我认为这不会给你你期望的结果。 – sch 2012-03-25 11:28:09

+0

Thx的帮助,我做了一些其他的东西,我想要做的事情。 – MTA 2012-03-25 14:26:43

回答

0

在循环中,您使用UITableView类的方法cellForRowAtIndexPath:。此方法返回nil如果小区是不可见的文件说:

返回值
表示表或零的细胞的对象,如果该细胞是不可见或indexPath超出范围。

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

+0

我可以使用委托方法吗? – MTA 2012-03-25 11:28:21

+0

@MTA - 查看我对你的问题的评论。请更新您的问题并解释您为什么要循环访问单元格。 – sch 2012-03-25 11:29:46