0

我有一个用来显示缩略图的集合视图。我希望它是 4 列,就像照片应用程序一样。

我得到了一些示例代码(目前还没有多少),这让我对它正在做的数学感到困惑。

我正在使用一个数组(拇指),它是通过 NSXMLParser 从作为数据源的 Web 服务返回的 XML 构建的。

但是,由于该数组没有“numberOfSections”或“numberOfItemsInSection”(它只是一个带有照片名称和位置的简单二维数组),我无法确定调整它以处理 4 个跨度所需的数学。

例如:如果它是第三行/第二列,那么数组中的索引是 9(零基)吗?(因为 2 个完整行 * 每行 4 个 + 2(第二列)= 10)?.. 困惑

另请注意:当前代码将仅显示偶数 # 个图片。因此,如果某张专辑中有 3 张图片,则只会显示 2 张。

当前代码:

`#pragma mark - UICollectionViewDataSource

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    // Return the number of sections.
    return [thumbs count] / 2;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return 2;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"PhotoCollCell" forIndexPath:indexPath];
    //get current photo from collection
    PhotoCollection *currentPhoto = [thumbs objectAtIndex:(indexPath.section*2 + indexPath.row)];

    //Show in PhotoName Cell
    cell.photoName.text = currentPhoto.PhotoName;

    //show thumb via:SDWebImage
    [cell.photoView setImageWithURL:[NSURL URLWithString:currentPhoto.PhotoThumbnailAbsoluteLocation] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    //regular (wasn't working by default)
    //cell.photoView.image = [UIImage imageNamed:currentPhoto.PhotoThumbnailAbsoluteLocation];

    return cell;

}`
4

1 回答 1

1

集合视图的要点是您不需要进行这些计算。用作您的布局类,使UICollectionViewFlowLayout单元格具有适当的大小(因此一行只能容纳 4 个)并有一个包含所有缩略图的部分。流布局将通过自动调整单元格的位置以填充行来为您提供网格。

于 2012-10-14T08:32:48.710 回答