Можем ли мы уменьшить изображение по коду, который был увеличен с помощью пинч-масштабирования? - PullRequest
0 голосов
/ 27 мая 2011

Реализация пинч-масштабирования осуществляется с помощью 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 ]

2 голосов
/ 27 мая 2011

При загрузке нового изображения установите zoomScale scrollView на 1,0.

[slideShowImageViewScrollView setZoomScale:1.0 animated:NO];
0 голосов
/ 27 мая 2011

Вы можете установить масштаб на скроллвью, чтобы сбросить его до 1,0. Вы даже можете сохранить уровни масштабирования для изображений, чтобы сохранить индивидуальные настройки масштабирования для каждого изображения.

...