使用IB调整大小构建的自定义UITableViewCell?

时间:2011-03-16 21:38:12

标签: iphone ipad uitableview autosize

我已经确保我的单元格的自动调整大小允许灵活的宽度,但是当旋转设备时,单元格不会调整大小。

我还验证了tableview的大小调整,问题直接与单元格有关。

这是我用来创建单元格的代码:

if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MetaTableViewCell" owner:self options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:0];
    }

有人会想到可能出错的地方吗?

使用IB创建的单元格是否未重新调整大小?

2 个答案:

答案 0 :(得分:1)

如果是未调整大小的单元格的高度,我建议您在轮换后修改UITableView委托方法。

-

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(condition)// has rotation taken place
    // new height
    else
    // old height
    }

请确保在轮换发生时致电[tableView reloadData];

答案 1 :(得分:0)

如果我理解你的问题,你想改变UITableViewCells的高度,对吧?尝试在TableView的委托中添加此行:

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

我遇到了同样的问题。如果你在IB中设置大小,你可以在那里放置更多的东西,但它仍然会在你加载时向你的代表询问高度。如果您的委托没有实现此方法,它将只采用默认高度。