UICollectionView中的图像点击全屏

时间:2013-11-14 12:35:44

标签: uiimage uicollectionview

我有一个移动应用程序,需要两个单独的图像库。我已经使用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;
}

如果有人能提供帮助,我会非常感激。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

要响应UICollectionView中的选择,您必须使用您的UICollectionViewController已符合的implement at least one method in the UICollectionViewDelegate Protocol

开始于:

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

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

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

答案 1 :(得分:0)

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