1

在我的应用程序中,我有缩略图视图,我希望用户使用 imageview 转到下一个视图并显示单击的特定缩略图。但是此图像视图通过分页和 UIPagecontrol 附加到 UIScroll。所以我希望打开特定图像并在特定索引处打开,以便用户可以向左或向右滑动以查看其他图像。这需要完全像 iPhone 的照片应用程序。

我该如何解决这个问题?

我的代码是,

集合视图.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showDetail"])
    {
        NSIndexPath *selectedIndexPath = [[self.gallerycollection indexPathsForSelectedItems] objectAtIndex:0];

        // load the image, to prevent it from being cached we use 'initWithContentsOfFile'
        NSString *imageNameToLoad = [NSString stringWithFormat:@"interior_%d", selectedIndexPath.row];
        NSString *pathToImage = [[NSBundle mainBundle] pathForResource:imageNameToLoad ofType:@"jpg"];
        UIImage *image = [[UIImage alloc] initWithContentsOfFile:pathToImage];

        GalleryImageScrollViewController *gallerydetailViewController = [segue destinationViewController];
        gallerydetailViewController.FullScreenImageScroller=image ;
    }
}

GalleryImageScrollViewcontroller.m

- (void)viewDidLoad
{
    [super viewDidLoad];


    NSMutableArray *mutablearray = [NSMutableArray array];
    data=[MyDatabase new];
    slideImages=[data OpenMyDatabase:@"SELECT pic_name_big FROM interior":@"pic_name_big"];
    [mutablearray addObjectsFromArray:slideImages];
    temparr = [[NSMutableArray alloc]init];
    temparr=[NSMutableArray arrayWithArray:mutablearray];
        [self putImageViewsInScrollView:[temparr count]];
}




-(void) putImageViewsInScrollView:(int)numberOfImageViews
{
   for(int i=0 ;i<= numberOfImageViews; i++)
    {
       // UIImageView *fullScreenImageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:[temparr objectAtIndex:i]]];
        fullScreenImageView.frame = CGRectMake((WIDTH_OF_IMAGE * i)  , 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE);
        [self.FullScreenImageScroller addSubview:fullScreenImageView];

    }

    [self.FullScreenImageScroller setContentSize:CGSizeMake(WIDTH_OF_SCROLL_PAGE * ([temparr count]), HEIGHT_OF_IMAGE)];
    [self.FullScreenImageScroller setContentOffset:CGPointMake(0, 0)];
    [self.FullScreenImageScroller scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO];
    self.FullScreenImageScroller.delegate=self;

   }
4

4 回答 4

0

首次将图像添加到缩略图时,您可以将数组中图像的索引映射到缩略图视图的“标签”

ThumbnailView *thumb = [UIView alloc] init];
thumb.image = [imagesArray objectAtIndex:i];
thumb.tag = i;

并且在选择拇指视图时,您可以根据标签从数组中获取图像

UIImage *image = [imagesArray objectAtIndex:thumb.tag];
于 2013-03-14T05:37:36.030 回答
0

这可以帮助

KTPhotoBrowser

TTT拇指

于 2013-03-14T05:20:22.887 回答
0

您可以使用 Three20 库或 Apple 的 UICatalog 示例作为参考。以下是链接:

https://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

https://github.com/facebook/three20

于 2013-03-14T05:22:28.520 回答
0

尝试这样可能有效

1.对于缩略图图像,当您单击缩略图图像时,将该标签值传递给下一个视图控制器(detailviewControllerObj.index=image.tag)。

2.将所有全屏图像(尺寸320 * 480)添加到详细页面的滚动视图中,并将该滚动视图添加到视图中。

3.当您单击缩略图时,您可以将索引值传递到详细屏幕。

4.然后在详细屏幕中设置滚动视图内容偏移量。

[scroll setContentOffset:CGPointMake(320*index, 0)];

当您当时创建缩略图时,请给予喜欢

for(int i=0;i<[imgarr count];i++)
{
    UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
    imageView.image=[imgarr objectAtIndex:i];
    imageView.tag=i;
    [self.view addSubview:imageView];
}

之后,详细视图将一个整数值作为索引,并在您单击该特定图像时合成该变量,如下所示

detailviewControllerObj.index=image.tag

于 2013-03-14T05:28:08.763 回答