2

我有一个历史页面,它是一个有 5 行的 UItableview。我已将原型单元格设置为我想要的规格,并将此文本添加到相应的 historyviewcontroller.h 文件中:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath           *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryItem"];
return cell;
} 

当我运行应用程序时,我没有看到任何单元格。我显然错过了一些东西,但我不太明白是什么。

4

1 回答 1

5

您需要实际创建单元格。dequeueReusableCellWithIdentifier 仅检索已创建的单元格,而不会创建新单元格。

这是如何做到的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath           *)indexPath
    static NSString *CellIdentifier = @"HistoryItem"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //if cell is not nil, it means it was already created and correctly dequeued.
    if (cell == nil) {
        //create, via alloc init, your cell here
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    return cell;
}
于 2012-05-27T14:07:22.420 回答