我正在构建一个具有外部委托控制器的表视图,它是由代码创建的,而不是由storyboard创建的。我有细胞问题,它们没有显示,尽管执行正确到达委托方法:
构建方法:
-(void)buildCategorias{
CGRect twitterFrame = CGRectMake(105, 83, 600, 568);
categoriasView = [[UIView alloc] initWithFrame:twitterFrame];
CGRect scrollViewFrame = CGRectMake(105, 83, 400, 568);
categoriasTableView = [[UITableView alloc] initWithFrame:scrollViewFrame];
categoriasController = [[categoriasViewController alloc] init];
categoriasController.categorias = [[NSArray alloc] initWithObjects:@"Gafas", @"Relojes", @"Pantalones", @"Deportivas", @"Cazadoras", nil];
[categoriasTableView setDelegate:categoriasController];
[categoriasTableView setDataSource:categoriasController];
[self.categoriasView addSubview:categoriasTableView];
[categoriasTableView reloadData];
[self.view addSubview:categoriasView];
}
自定义单元格:categoriasCell.h
@interface categoriasCell : UITableViewCell{
UILabel *title;
}
@property (nonatomic, strong) IBOutlet UILabel *title;
@end
categoriasCell.m
@implementation categoriasCell
@synthesize title;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
表视图委托:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
categoriasCell *cell = [self.tableView
dequeueReusableCellWithIdentifier:@"categorias"];
if (cell == nil) {
cell = [[categoriasCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"categorias"];
}
cell.title.text = [categorias objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 1;
}
@end
表视图为空,没有内容。
非常感谢你的帮助
答案 0 :(得分:1)
根本没有细胞,或者是否有正确数量的细胞,但它们是空的?
如果根本没有单元格,请检查是否确实实现了其他所需的委托方法(tableView:numberOfRowsInSection:
),并确实它确实返回了您期望的单元格数。
否则,您可能缺少从其NIB加载单元格的代码(我假设您已经在categoriasCell
中有一个IBOutlet,并且没有代码实际将标题标签添加到看,你打算从NIB来的单元格)。有关如何加载单元格的NIB并在委托方法中使用它,请参阅Apple's documentation。如果你没有从NIB加载它,那么文本字段将不在那里,所以你的单元格将是空的。
两个非致命的编码/风格问题:
UITableViewCellSelectionStyleNone
作为样式传递。你真的应该在这里使用UITableViewCellStyleDefault
,因为参数是单元格样式,而不是选择样式。CategoriasCell
而不是categoriasCell
)。