ストーリーボードで設計されたテーブル ビューを備えたビュー コントローラーがあります。このテーブル ビューは、それぞれが 3 つの異なるセクションに対応する 3 つの異なるカスタム セルを使用します。各カスタム セルをプロトタイプ セルとして定義し、それぞれに異なる識別子を使用し、Xcode のすべてのセルでカスタム セル オブジェクトを定義し、Interface Builder によってすべてのセルのすべてのコントロールにリンクしました。
カスタム セルをセクションの順序として配置しました。ここで確認できます。マークされたすべての四角は、カスタム プロトタイプ セルです。
テーブルビューのコードは次のとおりです。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 3;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section==2){
return 40;
}else if (indexPath.section==1){
return 40;
} else if (indexPath.section==0){
return 205;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section==0){
return 1;
} else if (section==1){
return [[selectedTeam valueForKey:@"jugadores"]count];
} else if (section==2){
return [[selectedTeam valueForKey:@"tecnicos"]count];
}
}
- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section==0){
NSString *imageService = @"http://backend.exular.net/contenido/";
imageCell *cellImage = [table dequeueReusableCellWithIdentifier:@"imatge"];
if (cellImage == nil) {
cellImage = [[imageCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"imatge"];
}
cellImage.leagueName.text = [selectedTeam valueForKey:@"nom"];
NSString *path= [[NSString stringWithFormat:@"%@%@" ,imageService, [selectedTeam valueForKey:@"img"]] stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
[cellImage.teamPicture setImageWithURL:[NSURL URLWithString:path] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
imageService=nil;
return cellImage;
} else if (indexPath.section==1){
teamCell *cellTeam = [table dequeueReusableCellWithIdentifier:@"equipo"];
if (cellTeam == nil) {
cellTeam = [[teamCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"equipo"];
}
NSDictionary *teamDic = [[selectedTeam valueForKey:@"jugadores"] objectAtIndex:indexPath.row];
cellTeam.name.text = [teamDic valueForKey:@"nom"];
cellTeam.height.text = [teamDic valueForKey:@"height"];
cellTeam.number.text = [teamDic valueForKey:@"altura"];
cellTeam.date.text = [teamDic valueForKey:@"date"];
cellTeam.position.text = [teamDic valueForKey:@"posicion"];
return cellTeam;
} else if (indexPath.section==2){
NSString *CellIdentifier = @"staff";
staffCell *cellStaff = [table dequeueReusableCellWithIdentifier:@"staff"];
if (cellStaff == nil) {
cellStaff = [[staffCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"staff"];
}
NSDictionary *staffDic = [[selectedTeam valueForKey:@"tecnicos"] objectAtIndex:indexPath.row];
cellStaff.name.text = [staffDic valueForKey:@"nom"];
cellStaff.role.text = [staffDic valueForKey:@"posicion"];
return cellStaff;
}
return nil;
}
Xcodeは私にこのエラーを与えました:Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<teamCell 0x8d4f6b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key role.'
そして実行は行で中断します
teamCell *cellTeam = [table dequeueReusableCellWithIdentifier:@"equipo"];
私はあなたの助けに感謝します。
どうもありがとう。