我正在使用 indexPath.row 确定我在 tableview 的哪一行做某事。我的单元格的标题包含一个数字,第一行应该是 1,最后一行应该是 18,所以我有 18 行。这适用于前 11 行,但在那之后,标题中的数字似乎是随机生成的!有时是 16,然后是 5,然后是 18,然后是 12……等等。它有什么问题/为什么 indexPath.row 变量会这样?
我的 cellForRowAtIndexPath 方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"myCell" owner:self options:nil];
cell = cell0;
self.cell0 = nil;
}
UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.text = [NSString stringWithFormat:@"Cell %d", indexPath.row];
return cell;
}
关于如何解决问题的更多建议?我直到现在才让它工作......
// 更新更多代码:
这是我声明单元格的方式。它位于一个 XIB 文件(模板“空 XIB”)中,我只是将库中的单元格放入 IB 中。
@interface myViewController : UITableViewController {
UITableViewCell *cell0;
}
@property (nonatomic, retain) IBOutlet UITableViewCell *cell0;
然后,在 myViewController.m 文件的顶部:
@synthesize cell0;
我的 cellForRowAtIndexPath 方法已经在上面发布了。它等同于 SDK 文档中的 cellForRowAtIndexPath 方法,在 Apple 的示例中,它似乎可以工作。