我正在尝试使用两种格式不同的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个UItableViewCells,它会给我一个错误:
invalid nib registered for identifier (historyCellType) - nib must contain exactly one top level object which must be a UITableViewCell instance'
有没有解决这个问题?
谢谢!
答案 0 :(得分:13)
在iPad和iPhone上使用不同单元格的最佳方法是使用2个笔尖: HistoryCell~iphone.xib 和 HistoryCell~ipad.xib
你必须注册你的笔尖:
[self.tableView registerNib:[UINib nibWithNibName:@"HistoryCell" bundle:nil] forCellReuseIdentifier:@"historyCellType"];
系统根据当前设备自动加载xib。