我在示例项目中实现了LazyTableImage。我想在1个单元格中显示3张图像,你能告诉我我该怎么做吗?这是下面给出的示例代码,我可以尝试这样做,但在1个单元格中未显示3张图像,我可以制定算法吗在其他项目中工作正常,但LazyTableImage无法正常工作,请告诉我我该怎么做...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";
    static NSString *PlaceholderCellIdentifier = @"PlaceholderCell";

    int nodeCount = [self.currentSelectedCategoryArray count]/4;

    if (nodeCount == 0 && indexPath.row == 0)
    {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier];
        if (cell == nil)
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                           reuseIdentifier:PlaceholderCellIdentifier] autorelease];
            cell.detailTextLabel.textAlignment = UITextAlignmentCenter;
            cell.selectionStyle = UITableViewCellSelectionStyleNone;
        }

        cell.detailTextLabel.text = @"Loading…";

        return cell;
    }

    UITableViewCell *cell = [self.detailCatTable dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                       reuseIdentifier:CellIdentifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    int check = indexPath.row;
    check = check*3;

        for (int i = 0; i < 3; i++){

            if(check+i < [self.currentSelectedCategoryArray count]){

                if (nodeCount > 0)
                {
                    // Set up the cell...
                    imageClass *imgC = [self.currentSelectedCategoryArray objectAtIndex:check+i];

                    cell.textLabel.text = imgC.imageName;
                    cell.detailTextLabel.text = imgC.imageID;

                    // Only load cached images; defer new downloads until scrolling ends
                    if (!imgC.cImage)
                    {
                        if (tableView.dragging == NO && tableView.decelerating == NO)
                        {
                            [self startImageDownload:imgC forIndexPath:indexPath];
                        }
                        // if a download is deferred or in progress, return a placeholder image
                        cell.imageView.image = [UIImage imageNamed:@"imageFrame.png"];
                    }
                    else
                    {
                        cell.imageView.image = imgC.cImage;
                    }

                }

            }

        }
return cell;
}

最佳答案

imageView中只有1个cell。您应该按照建议的@alan duncan创建自定义UITableViewCell

在您的代码中,您可以像这样:

switch(i){
     case 0:
      ((UIImageView*)[cell.contentView viewWithTag:1]).image = imgC.cImage;
     break;

     case 1:
      ((UIImageView*)[cell.contentView viewWithTag:2]).image = imgC.cImage;
     break;

     case 2:
      ((UIImageView*)[cell.contentView viewWithTag:3]).image = imgC.cImage;
     break;
}


希望您能明白。

10-08 11:42