У меня есть uiscrollview, и внутри него есть uiimageview. Я хочу, чтобы использовалось, чтобы иметь возможность увеличить изображение, так как это большое изображение. scrollview нужно только прокручивать по вертикали, а не по горизонтали.uiscrollview увеличение и уменьшение не работает должным образом
перед добавлением масштабирования эффекта, я имел следующий код и он работал, как я хотел,
-(void)viewDidLoad
{
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 1690)];
}
Так что я сделал некоторые исследования, и в конечном итоге с помощью следующего кода для того, чтобы пинч увеличивать и уменьшать масштаб,
-(void)viewDidLoad
{
scrollView.scrollEnabled = YES;
[scrollView setContentSize:CGSizeMake(320, 1690)];
scrollView.delegate = self;
// scrollView.contentSize = instImage.frame.size;
scrollView.minimumZoomScale = scrollView.frame.size.width/instImage.frame.size.width;
scrollView.maximumZoomScale = 2.0;
[scrollView setZoomScale:scrollView.minimumZoomScale];
[[NSRunLoop currentRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return instImage;
}
- (CGRect)centeredFrameForScrollView:(UIScrollView *)scroll andUIView:(UIView *)rView {
CGSize boundsSize = scroll.bounds.size;
CGRect frameToCenter = rView.frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width) {
frameToCenter.origin.x = ((boundsSize.width - frameToCenter.size.width)/2);
}else {
frameToCenter.origin.x = 0;
}
return frameToCenter;
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollV {
instImage.frame = [self centeredFrameForScrollView:scrollV andUIView:instImage];;
}
Теперь у меня есть следующие проблемы, и я не могу понять, что случилось,
, когда представление просто загружено перед любым нажатием, прокрутка не прокручивается полностью до конца изображения.
При сжатии для увеличения, он прокручивает влево и вправо и вверх и вниз по изображению, но все же он не прокручивается до конца изображения, но все же больше, чем он первоначально делал при начало.
Когда я уменьшаю масштаб, все это останавливается. вы не можете увеличивать или уменьшать масштаб, он даже не прокручивается. полностью заблокирован.
Я сделал несколько исследований и нашел следующее сообщение. https://stackoverflow.com/a/6384834/1103257
но я не знаю, где бы я нашел NSDefaultRunLoopMode или даже как его искать, чтобы выяснить, может ли это решить это или нет.
Спасибо @Mona. Я также столкнулся с тем же вышеизложенным вопросом. Меня устраивает. :) – iKT