2

iPad か iPhone かに応じて、2 つの異なる形式の UITableViewCells を使用しようとしています。どちらのセルにも同じ情報が表示されますが、iPad セルの高さは半分、幅は 2 倍です。したがって、情報は 1 行と 2 行で表示されます。

私の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'

とにかくこれを修正する方法はありますか?

ありがとう!

4

1 に答える 1

14

iPad と iPhone で異なるセルを使用する最良の方法は、2 つのペン先を使用することです: HistoryCell~iphone.xibHistoryCell~ipad.xib

そして、ペン先を登録する必要があります:

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

システムは、現在のデバイスに応じて xib を自動的に読み込みます。

于 2013-04-15T17:03:37.510 に答える