2009-06-18 79 views
1

我有一個UIScrollView與嵌套的UIImageViews。每個圖像視圖都可以縮放,但是當我在圖像上縮放時嘗試滾動內部滾動視圖時,外部滾動視圖將其拾取並切換圖像瀏覽。嵌套UISCrollViews - 防止父縮放滾動放大兒童

如何防止發生這種情況,以便在內部不縮放時外部滾動視圖僅滾動?

回答

5

我會發布我的答案,我必須努力幫助別人。

處理嵌套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]; 
    } 
}