0

我正在构建一个具有外部委托控制器的表视图,它是由代码创建的,而不是由故事板创建的。我对单元格有疑问,尽管执行正确地到达了委托方法,但它们没有显示:

构建方法:

-(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

分类Cell.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

表格视图是空的,没有内容。

非常感谢您的帮助

4

1 回答 1

1

是根本没有单元格,还是有正确数量的单元格,但它们是空的?

如果根本没有单元格,请检查您是否实现了其他必需的委托方法 ( tableView:numberOfRowsInSection:),并且它确实返回了您期望的单元格数量。

categoriasCell_来自NIB)。请参阅Apple 的文档以了解如何加载单元格的 NIB 并在您的委托方法中使用它。如果您不从 NIB 加载它,则文本字段将不存在,因此您的单元格将为空。

还有两个非致命的编码/样式问题:

  • UITableViewCellSelectionStyleNone在初始化单元格时作为样式传递。你真的应该在UITableViewCellStyleDefault这里使用,因为参数是单元格样式,而不是选择样式。
  • 您的班级名称应大写(CategoriasCell而不是categoriasCell)。
于 2012-07-14T23:15:13.587 回答