UITableViewCell框架高度始终为44px

时间:2013-01-24 15:06:30

标签: ios objective-c uitableview ios6 heightforrowatindexpath

我使用heightForRowAtIndexPath:方法返回100来设置单元格的高度。 但是在cellForRowAtIndexPath方法中,单元格的帧高始终为44px。

以下是我的代码。

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 100;
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    [cell setBackgroundColor:[UIColor redColor]];
    [cell.contentView setBackgroundColor:[UIColor redColor]];
    cell.textLabel.text = [NSString stringWithFormat:@"%d", indexPath.row];
    NSLog(@"%f %f", cell.frame.size.height, cell.contentView.frame.size.height);
    return  cell;
}

NSLog语句打印“44px 44px”。

我可以使用此声明获得正确的高度

CGFloat height = [tableView heightForRowAtIndexPath:indexPath];

1 个答案:

答案 0 :(得分:4)

分配单元格时不会调用您的委托方法。 initWithStyle allways返回高度为44的单元格,除非您在子类中覆盖它。