1

我有一个应用程序需要两个单独的图像库。我已经使用 UICollectionView 完成了第一个。我已经设置好一切,以便 UICollectionView 完美运行,我只想能够单击每个图像以全屏查看它们。我还想知道如何在具有不同图像的不同页面上构建第二个 UICollectionView。是否像制作第二个 UICollectionView 并将其命名为 myCollectionView2 一样简单,并且与图像数组相同?

这是我目前拥有的第一个集合的代码:

#import "CollectionViewController.h"
#import "CustomCell.h"

@interface CollectionViewController ()
{
    NSArray *ArrayOfImages;
}

@end

@implementation CollectionViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[self myCollectionView1]setDataSource:self];
    [[self myCollectionView1]setDelegate:self];

    ArrayOfImages = [[NSArray alloc] initWithObjects:@"MacLeodsAccessories.png", @"MacleodsBag.png", @"MacleodsBag1.png", @"MacleodsBag2.png", @"MacleodsCollar.png", @"MacleodsCushions.png",  @"MacleodsPurse.png", @"MacleodsTeaAndCoffee.png", nil];
}

//datasource and delegate method
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [ArrayOfImages count];
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    CustomCell *cell =[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

    [[cell myImage]setImage: [UIImage imageNamed:[ArrayOfImages objectAtIndex:indexPath.item]]];

这可能全部编码错误并且很可能是多余的,但或者可能正是我需要的,我只是不知道如何更正它以及我在这里放了什么可以使这项工作。

    [[cell myImage]setGestureRecognizers:[ArrayOfImages objectAtIndex:indexPath.item]];

    return cell;
}

如果有人可以提供帮助,我将不胜感激。提前致谢。

4

2 回答 2

0

要响应 UICollectionView 中的选择,您必须在 UICollectionViewDelegate 协议中实现您的 UICollectionViewController 已经符合的至少一种方法。

从...开始:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

在此方法中放置一个断点,您会看到每次触摸集合视图的元素时,都会触发此方法并为您包含一个 indexPath。

然后,您所描述的一种常见方法将涉及获取该路径引用的图像,将其放置在更大的 UIImageView 内并将该视图添加到层​​次结构中。

于 2013-11-14T13:07:14.940 回答
0

不要创建两个或更多 UICollectionview。你可以做什么,当第二页可见时,用空数组重新加载 Collectionview。一旦您的页面可见,将一组新图像加载到 Collectionview 中,反之亦然。

于 2013-11-14T13:17:21.130 回答