0

我创建了一个自定义 tableviewcell。该类有 3 个标签。使用主视图控制器模板开始,我更改了故事板中的默认 tableviewcell 以引用我的新自定义单元格,我还将类型更改为自定义,并将标识符更改为“CustomTableCell”。我还将我的 cellForRowAtIndexPath 方法修改为以下...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = @"CustomTableCell";

    CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (!cell)
    {
        cell = [[CustomTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    Item *currentItem = _objects[indexPath.row];
    cell.nameLabel.text = [currentItem name];
    cell.vegLabel.text = @"V";
    return cell;
}

自定义单元格头文件

#import <UIKit/UIKit.h>

@interface CustomTableCell : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *nameLabel;
@property (nonatomic, weak) IBOutlet UILabel *vegLabel;
@property (nonatomic, weak) IBOutlet UILabel *priceLabel;

@end

在我的故事板中,一切似乎都已正确连接。当我调试时,我可以看到该单元格具有我的自定义单元格的属性。然而,当我运行应用程序时,每一行都是空白的。tableviewcell 在故事板中使用了正确的标识符。我只是看不到我错过了什么。任何帮助,将不胜感激。谢谢。

故事板中的标识符 故事板中的连接

4

1 回答 1

1

您没有从 mainbundle 加载自定义单元格。所以你需要加载它。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = @"CustomTableCell";

    CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    // Add this line in your code
    cell = [[[NSBundle mainBundle]loadNibNamed:@"CustomTableCell" owner:self options:nil]objectAtIndex:0]; 

    if (!cell)
    {
        cell = [[CustomTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    Item *currentItem = _objects[indexPath.row];
    cell.nameLabel.text = [currentItem name];
    cell.vegLabel.text = @"V";
    return cell;
}
于 2013-05-16T08:37:49.207 回答