У меня есть uiscrollview, и внутри него есть uiimageview.Я хочу, чтобы раньше можно было увеличивать изображение, так как оно большое.скроллвью нужно только прокручивать вертикально, а не горизонтально.
перед добавлением эффекта масштабирования у меня был следующий код, и он работал, как я хотел,
-(void)viewDidLoad
{
[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(320, 1690)];
}
Итак, я провел небольшое исследование и в итоге получил следующий код, чтобы включить масштабирование и масштабированиеout,
-(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 или даже как найти его, чтобы выяснить, может это решить или нет.