我创建了一个自定义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;
}
CUSTOM CELL HEADER FILE
#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
Eveything似乎在我的故事板中正确连接。当我调试时,我可以看到该单元格具有我的自定义单元格的属性。然而,当我将应用程序的每一行都空白时。 tableviewcell在故事板中使用了正确的标识符。我只是看不出我错过了什么。任何帮助,将不胜感激。感谢。
答案 0 :(得分: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;
}