2

我正在尝试使用两种不同格式的 UITableViewCells,具体取决于它是 iPad 还是 iPhone。两个单元格显示相同的信息,但 iPad 单元格的高度是一半,宽度是两倍。因此,信息显示在一行与两行上。

在我的cellforRowatIndexPath,

我把代码:

HistoryCell *cell;
if (self.isiPad) {
    cell = [self.tableView dequeueReusableCellWithIdentifier:@"historyiPadCellType" forIndexPath:indexPath];

}
else{
    cell = [self.tableView dequeueReusableCellWithIdentifier:@"historyCellType" forIndexPath:indexPath];

}

但是,如果我在同一个 XIB 中有 2 个 UItableViewCell,它似乎会给我一个错误: invalid nib registered for identifier (historyCellType) - nib must contain exactly one top level object which must be a UITableViewCell instance'

有没有什么办法解决这一问题?

谢谢!

4

1 回答 1

14

为 iPad 和 iPhone 使用不同单元的最佳方法是使用 2 个 nib: HistoryCell~iphone.xibHistoryCell~ipad.xib

你必须注册你的笔尖:

[self.tableView registerNib:[UINib nibWithNibName:@"HistoryCell" bundle:nil] forCellReuseIdentifier:@"historyCellType"];

系统会根据当前设备自动加载 xib。

于 2013-04-15T17:03:37.510 回答