我们可以通过代码缩小图像,通过缩放缩放放大吗?

时间:2011-05-27 07:11:20

标签: iphone objective-c uiscrollview uiimageview zoom

捏拉缩放的实现是通过使用UIScrollView并在其中放入'UIImageView`来完成的,通过以下代码:

-(void)viewDidLoad{
    slideShowImageViewScrollView.maximumZoomScale = 4.0;
    slideShowImageViewScrollView.minimumZoomScale = 1.0;
    slideShowImageViewScrollView.clipsToBounds = YES;
    slideShowImageViewScrollView.delegate = self;
    slideShowImageViewScrollView.scrollEnabled = NO;
}

然后在检查zoomScale后,滚动启用为:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{
if (scrollView.zoomScale!=1.0) 
{
    slideShowImageViewScrollView.scrollEnabled = YES;
}
else 
{
    slideShowImageViewScrollView.scrollEnabled = NO;
}
}

以下是滚动视图中用于放大的视图

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return slideShowImageView;
}

现在使用计时器,UIImageView的图像在一段时间后被更改,遵循以下代码:

- (void) changeImageSlide
{
    if (imageCounter>=totalNoOfImages-1) 
    {
        imageCounter=0;
    }
    NSString *str = [NSString stringWithFormat:@"%@.jpg",[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter]];
    mainSlideShowImageView setImage:[UIImage imageNamed:str]];
    [mainSlideShowImageView setTag:[[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter] intValue]];     
    imageCounter++;
}

这里唯一的问题是当下一个图像被加载时,'放大',我们希望图像处于正常模式。
我们可以实现它(通过编码缩小我们的changeImageSlide方法或任何地方)? 如果是,那怎么样?
如果没有,那么还有其他选择吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

在加载新图像时,将scrollView的zoomScale设置为1.0。

[slideShowImageViewScrollView setZoomScale:1.0 animated:NO];

答案 1 :(得分:0)

您可以在scrollview上设置缩放比例,将其重置为1.0。您甚至可以存储图像的缩放级别,以便保留每个图像的单独缩放设置。