2012-03-09 2 views
0

Я применил LazyTableImage в своем примере проекта. Я хочу показать 3 изображения в моей 1 ячейке, можете ли вы сказать мне, как я могу это сделать, вот мой пример кода, который ниже, я могу попытаться это сделать, но его не показаны 3 изображения в 1 ячейке, я могу сделать алгоритм который отлично работает в других проектах, но LazyTableImage ее не работает, пожалуйста, скажите мне, как я мог бы сделать это ...Как разместить 3 изображения в 1 ячейке

- (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; 
} 

ответ

1

У вас есть только 1 imageView в cell. вы должны создать пользовательский UITableViewCell как предложено @alan duncan.

в своем коде вы можете, как это:

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; 
} 

Я надеюсь, что вы получите эту идею.

1

Я бы дизайн пользовательского UITableViewCell в своем собственном СИБ; так что вы можете визуально отображать свои три объекта UIImageView.

Затем вместо [[UITableViewCell alloc] init...] вы загрузите ячейку из наконечника, либо непосредственно, либо создайте экземпляр через UINib.

Смежные вопросы