我有一个动态表视图,实际上就像静态,但我已将其设置为动态,因为它嵌入在视图控制器中。我有一个问题,表视图有4个单元格的3个单元格设置在表视图委托方法,但我有一个数组,字典准备填充单元格数据。
正如您在此代码中所看到的,它总是在所有部分中设置相同的数据,因为indexPath.row用于迭代数组,尽管数组有更多值,但它不会达到3。
以下是当前代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSDictionary *jornada = [[NSDictionary alloc] initWithDictionary: [copaReyArray objectAtIndex:indexPath.row]];
self.copaReytable.backgroundColor = [UIColor whiteColor];
if (indexPath.row==0){
cuartosReyCell *headerCell = [tableView dequeueReusableCellWithIdentifier:@"header"];
if (headerCell == nil) {
headerCell = [[ cuartosReyCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"header"];
}
headerCell.cuartos.text = @"1/4 final";
headerCell.backgroundColor = [UIColor colorWithRed:0.008 green:0.235 blue:0.451 alpha:1];
return headerCell;
}
if (indexPath.row==1){
localCopaReyCell *localCell = [tableView dequeueReusableCellWithIdentifier:@"local"];
if (localCell == nil) {
localCell = [[ localCopaReyCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"local"];
}
NSString *equipoLoc = [jornada valueForKey:@"id_local"];
UIImage *img = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",[self applicationDocumentsDirectory],equipoLoc ]];
[localCell.escudo setImage:img];
localCell.escudo.contentMode = UIViewContentModeScaleAspectFit;
localCell.equiLoc.text = [equiposDic valueForKey:equipoLoc];
localCell.equiLoc.textColor = [UIColor colorWithRed:0.004 green:0.29 blue:0.553 alpha:1];
localCell.primerPartido.text = [jornada valueForKey:@"res_local"];
localCell.primerPartido.textColor= [UIColor colorWithRed:0.722 green:0.145 blue:0.345 alpha:1];
return localCell;
}
if (indexPath.row==2){
visitanteCopaReyCell *visitanteCell = [tableView dequeueReusableCellWithIdentifier:@"visitante"];
if (visitanteCell == nil) {
visitanteCell = [[ visitanteCopaReyCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:@"visitante"];
}
NSString *equipoLoc = [jornada valueForKey:@"id_local"];
UIImage *img = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",[self applicationDocumentsDirectory],equipoLoc ]];
[visitanteCell.escudo setImage:img];
visitanteCell.escudo.contentMode = UIViewContentModeScaleAspectFit;
visitanteCell.equiLoc.text = [equiposDic valueForKey:equipoLoc];
visitanteCell.equiLoc.textColor = [UIColor colorWithRed:0.004 green:0.29 blue:0.553 alpha:1];
visitanteCell.primerPartido.text = [jornada valueForKey:@"res_local"];
visitanteCell.primerPartido.textColor= [UIColor colorWithRed:0.004 green:0.29 blue:0.553 alpha:1];
return visitanteCell;
}
我不知道如何在copaReyArray上正确迭代并设置节和行。该数组包含8个对应于每个部分的字典(3个单元格的8个部分)。
非常感谢你的帮助。答案 0 :(得分:2)
要遍历数组,我首选的方法是forin
:
for(Object *obj in array) {
// do stuff with obj
}
请记住,虽然表视图中的cellForRowAtIndexPath
数据源已经在循环中(一个被隐藏在视图之外的地方)。您可以使用indexPath
参数来确定您的位置。它包含section
和row
属性。