テーブルビュー tblLeaderboard を含むカスタム UIView サブクラス Leaderboard があります。インターフェイスはxibで作成されました。さらに、xib を持つ UITableViewCell サブクラス LeaderboardCell があります。テーブルビューにセルを登録するのに問題があります。
これが私が試したことです。最初にペン先をテーブルビューに登録しました:
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
leaderInfo = [NSMutableArray array];
tblLeaderboard.dataSource=self;
[tblLeaderboard registerNib:[UINib nibWithNibName:@"LeaderboardCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"leaderboardCell"];
}
return self;
}
それから私が持っているセルを初期化するとき:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"leaderboardCell";
LeaderboardCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[LeaderboardCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
//ADDED THIS IN CASE DEFAULT CELL WAS LOADED
cell.textLabel.text = [[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"name" ];
cell.name.text = [[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"name"];
cell.score.text = [[[leaderInfo objectAtIndex:indexPath.row] objectForKey:@"score"] stringValue];
return cell;
}
セルはペン先をロードしません。カスタムセルを作成するだけです(デフォルトのセルは名前とスコアを適切にロードするため、データソースが正常に機能していることがわかります)。
UITableView を制御するために ViewController ではなく UIView を使用することで、ここで問題が発生するかどうかわかりません。