如何在缩放时限制缩放UIScrollView的特定子视图?

时间:2014-01-23 09:52:58

标签: ios objective-c uiview uiscrollview zooming

我有一个UIScrollView,它有UIImageview作为子视图。 UIImageView将UIView作为子视图。

UIScrollview -(subview)-> UIImageView -(subview)-> UIView

当我缩放它时,我只希望UIImageView可以缩放而不是UIView。

为此,我每次缩小UIView为

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {  

      aView.transform = CGAffineTransformMakeScale(1/scrollView.zoomScale, 1/scrollView.zoomScale); 
 }

当我只放大/缩小时,此功能正常。在我启动该视图的TouchesMoved时,该视图将根据UIImageView的缩放比例缩放。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

       TempView *aView = (TempView *)[[touches anyObject] view];
        aView.transform = CGAffineTransformMakeScale(1/_zoomScale, 1/_zoomScale);
    }

我在TouchesMoved中再次缩小它,但它仍然显示它已经失效

1 个答案:

答案 0 :(得分:0)

使用viewForZoomingInScrollView UIScrollView的委托方法。

如果你在UIScrollView上启用捏合,并且当发生捏合时,它会调用此委托方法,只返回imageView ,它是UIView的子视图,它是scrollView的子视图;