Вложенные UISCrollViews - предотвращение прокрутки родительского прокрутки при увеличении дочернего

StackOverflow https://stackoverflow.com/questions/1010489

Вопрос

У меня есть UIScrollView с вложенными UIImageViews. Каждое изображение может быть увеличено, но когда я пытаюсь прокрутить внутренний вид прокрутки при увеличении изображения, внешний вид прокрутки поднимает его и переключает изображения.

Как я могу предотвратить это, чтобы внешний вид прокрутки прокручивался только тогда, когда внутренний не увеличен?

Это было полезно?

Решение

Я опубликую свой ответ, который я получил, чтобы помогать другим.

Одним из простых способов обработки вложенных UIScrollViews является использование одного и того же делегата. Таким образом, когда вы обнаружите одну прокрутку UIScrollView, вы можете легко поделиться логикой контроллера и применить настройки к другому.

Чтобы решить эту проблему, все, что у меня было, все, что мне нужно было сделать, это сохранить BOOL с текущим состоянием масштабирования. Как только приложение обнаружит, что масштаб внутреннего прокрутки увеличивается,

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView1 {
    return [innerScrollViews objectAtIndex:[self indexOfComicViewWithOffset:currentOffset]];    
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView1 withView:(UIView *)view atScale:(float)scale {
    if (scale == 1) {
        zooming = NO;
        [outerScrollView setScrollEnabled:YES];
    } else {
        zooming = YES;
        [outerScrollView setScrollEnabled:NO];
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top