iOS图像查看器:滚动时设置缩放图像

时间:2015-08-21 08:04:46

标签: ios iphone uiscrollview xcode6 zooming

我有一个画廊视图,我用它,惊喜,查看图像。 :)我希望它与具有相同基本功能的标准iOS照片应用程序非常相似:滚动可缩放的图像。为此,我使用常规滚动视图,然后使用包含图像的其他滚动视图填充该视图。基本思想是这样的:

enter image description here

而且,我按以下方式填写:

for (int i = 0; i < [imageGalleryArray count]; i++)
{
    UIScrollView *imageContainer                    = [[UIScrollView alloc] initWithFrame:CGRectMake((windowSize.width * i), 0.0f, windowSize.width, windowSize.height)];
    imageContainer.contentSize                      = CGSizeMake(windowSize.width, windowSize.height);
    imageContainer.showsHorizontalScrollIndicator   = NO;
    imageContainer.showsVerticalScrollIndicator     = NO;
    imageContainer.bouncesZoom                      = YES;
    imageContainer.delegate                         = self;
    imageContainer.minimumZoomScale                 = 1.0f;
    imageContainer.maximumZoomScale                 = 3.0f;
        UIImageView *imageView                      = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, windowSize.width, windowSize.height)];
        imageView.image                             = [[imageGalleryArray objectAtIndex:i] objectForKey:@"image"];
        imageView.contentMode                       = UIViewContentModeScaleAspectFit;
        imageView.tag                               = IMAGEZOOMVIEW;
        imageView.opaque                            = YES;
        [imageContainer addSubview:imageView];
    [galleryScrollView addSubview:imageContainer];

    // Add it to array for proper removal later
    [contentScrollViewSubviewList addObject:imageContainer];
}

非常简单,工作正常。当我放大图像并想要滚动到另一个图像时,唯一的问题就出现了。在这种情况下,预期的行为是将所有图像的缩放级别设置回原始大小。我在scrollViewDidEndDecelerating委托方法中这样做:

if (scrollView.tag == GALLERYSCROLLVIEW)
{
    for (int i = 0; i < [contentScrollViewSubviewList count]; i++)
    {
        [[contentScrollViewSubviewList objectAtIndex:i] setZoomScale:1.0f animated:YES];
    }
}

不幸的是,它不起作用(或者更确切地说不是预期的)。我做了一些探测,发现当是活动幻灯片时,图像确实动画回原始大小。详细说明:如果我放大图像并滚动到另一个图像,图像会保持放大。当我向后滚动它时,就是当它缩放回原始尺寸时。但是,一旦我离开它(),我就需要缩小图像。 就像在iOS图像查看器中一样。)

坦率地说,我不了解整个缩放机制,无法找到如何正确执行此操作,UIScrollView文档也没有任何帮助。有人能告诉我如何解决我的问题吗?

0 个答案:

没有答案