Реализация пинч-масштабирования осуществляется с помощью 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
или в любом другом месте)?
Если да, то как?
Если нет, то есть ли альтернатива?
Спасибо.