0

我正在尝试使用不同的单元格标识符创建自定义 UITableView。在第一个单元格中应显示图像,并在下面显示其余单元格。但是,当滚动后显示的图像消失。我试图通过寻找其他人为类似问题提供的答案来解决,但没有成功。

这是代码。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    EventoCell *cell;
    static NSMutableString *CellIdentifier;
    if(i==0){
        CellIdentifier = @"imgCell";
        cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        i++;
    }
    else{
       CellIdentifier = @"CellaEvento";
       cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

       cell.Nome.text=[[AShow objectAtIndex:indexPath.row]GetEvento];
       cell.Localita.text=[[AShow objectAtIndex:indexPath.row]GetLocalita];
       cell.Ora.text=[NSString stringWithFormat:@"%d:%d",[[AShow objectAtIndex:indexPath.row]GetOra],[[AShow objectAtIndex:indexPath.row]GetMinuti]];

       [cell setValue:[[AShow objectAtIndex:indexPath.row]GetEvento] :[[AShow objectAtIndex:indexPath.row]GetGiorno] :[[AShow objectAtIndex:indexPath.row]GetMese] :[[AShow objectAtIndex:indexPath.row]GetAnno] :[[AShow objectAtIndex:indexPath.row]GetOra] :[[AShow objectAtIndex:indexPath.row]GetMinuti]];

    }
    return cell;
}
4

2 回答 2

0

你想在第一行显示图像吗?如果是这样,我认为您可以更改该行以判断它是否是第一行

if ( i==0 )

if (indexPath.row == 0 && indexPath.section == 0)

我认为我必须是班级成员。UITableView唯一创建数量有限的UITableViewCell. 通常,该数量等于显示的行数。例如,如果屏幕只能显示 10 行,则UITableView创建 10 个单元格。滚动后,它通过调用重用创建的单元格dequeueReusableCellWithIdentifier:forIndexPath,这使得屏幕外的行释放它们的单元格。向后滚动时,每个“新”输入的项目都需要一个单元格。将UITableView要求tableView:cellForRowAtIndexPath新的细胞。因此,作为您的场景,只有第一次可以显示图像行,因为在第一次之后,即使向后滚动, i 也非零。

于 2012-08-01T12:32:39.740 回答
0

我相信“i”在您的代码中被用作实例变量。- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath相反,您应该依赖作为方法参数传递的 indexPath 变量

表格视图中的第一个项目由以下内容标识:

 indexPath.row == 0 and indexPath.section == 0

.row 是给定节中的行索引 .section

确保您已正确实现这两个委托方法,以分别正确识别您在一个部分中的行数和您的部分数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
于 2012-08-01T12:59:03.230 回答