UIScrollView缩放行为,不缩放子视图

时间:2012-06-20 01:27:38

标签: iphone objective-c ios uiscrollview uipinchgesturerecognizer

所以我有一个UIScrollView,其缩放功能委托给一个视图控制器当然会覆盖:

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView { ... etc ...

一切正常(它缩放和滚动)。

然后我把它增加了一个额外的另外两个UIScrollViews到顶级视图,其目的是作为网格的指南(例如,想想M $ Excel中的行和列)。

因此,其中一个scrollView的子视图包含一行UILabel s(A,B,C,D ...),另一个是相同的,除了UILabel s在列中(1 ,2,3,4 ......)。如果这有帮助,想象一下棋盘。

现在我将主scrollView的垂直和水平滚动连接到指南滚动视图,如下所示:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView == self.scrollView) {
       self.verticalGuideScrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
       self.horizontalGuideScrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0);
    }
}

一切正常。

我连接了scrollView的缩放功能,如下所示:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    if (scrollView == self.scrollView) {
        self.verticalGuideScrollView.zoomScale = scrollView.zoomScale;
        self.horizontalGuideScrollView.zoomScale = scrollView.zoomScale;
    }
}

并且也可以正常工作除了我实际上并不希望它在指南视图中放大子视图(即UILabel s),我只想要在没有缩放的情况下进行缩放的翻译行为(放大)或萎缩)。

我可以通过在主scrollView中添加UIPinchGestureRecognizer并使用它来翻译指南滚动视图中的所有子视图来设想解决方案,但也许这里有人可以想出更简单的东西。

0 个答案:

没有答案