#iphone #objective-c #uiscrollview #uiimageview #zooming
#iPhone #objective-c #uiscrollview #uiimageview #масштабирование
Вопрос:
Реализация pinch zoom была выполнена с использованием UIScrollView
и помещением ‘UIImageView` внутри него с помощью следующего кода:
-(void)viewDidLoad{
slideShowImageViewScrollView.maximumZoomScale = 4.0;
slideShowImageViewScrollView.minimumZoomScale = 1.0;
slideShowImageViewScrollView.clipsToBounds = YES;
slideShowImageViewScrollView.delegate = self;
slideShowImageViewScrollView.scrollEnabled = NO;
}
Затем после проверки масштабирования прокрутка включена как:
- (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
методе или где-либо еще)?
Если да, то как?
Если нет, то есть ли какая-либо альтернатива?
Спасибо.
Ответ №1:
При загрузке нового изображения установите zoomScale
для ScrollView значение 1.0.
[slideShowImageViewScrollView setZoomScale:1.0 animated:NO];
Комментарии:
1. Копировать ответы других людей невежливо.
2. Я этого не сделал. Когда я ответил, ответа не было. Я открываю вопросы во вкладках, так что, возможно, вы ответили к тому времени, как я добрался до этой вкладки. Вы действительно думаете, что я должен был скопировать ваш ответ? Где вообще ваш фрагмент кода? Я скопировал это у вас? Эй, rptwsthi, выбери ответ Саймона как правильный. Я занимаюсь этим не ради очков.
Ответ №2:
Вы можете установить масштаб увеличения в scrollview, чтобы сбросить его до 1.0. Вы даже можете сохранить уровни масштабирования для изображений, чтобы сохранить индивидуальные настройки масштабирования для каждого изображения.