您需要采取哪些步骤将UIPanGestureRecognizer触摸转换为ScrollView缩放?

时间:2012-06-28 20:00:16

标签: ios uiscrollview uigesturerecognizer cgaffinetransform uipinchgesturerecognizer

我正在创建一个手势识别器来处理滚动视图中的缩放(一次只在轴上滚动一个)。我有手势识别器工作,但我无法使用手势识别器中的数据来正确转换我的视图。这就是我现在所做的:

- (void)handlePinch:(GPinchGestureRecognizer *)pinchRecognizer
{
 CGSize contentSize = [[self scrollView] contentSize];

 if (pinchRecognizer.pinchType == VerticalPinchZoomIn || pinchRecognizer.pinchType == VerticalPinchZoomOut)
 {

    [[self scrollView] containerView].transform = CGAffineTransformScale([pinchRecognizer transformBeforeTouches], 1, [pinchRecognizer scale]);
    [[self scrollView] setContentSize:CGSizeMake(contentSize.width, [pinchRecognizer initialContentSize].height * [pinchRecognizer scale])];
 }
 ... 
 ...
}

这很好地调整了视图的大小,然而,它让它到达屏幕上的奇怪位置,有时滚动视图将无法一直滚动到它的边缘(它认为它的边界在在某个地方的中间位置并反弹回来)。

所以基本上,我的问题是,我需要操作的其他对象和其他什么属性才能使其正常工作? View.transform,ScrollView.contentSize,还有什么?如果只有Apple的UIScrollView实现文件是开源xD

1 个答案:

答案 0 :(得分:0)

你需要添加UIPinchGestureRecognizer或者不需要维护它。

只需点击this链接即可在滚动视图中添加图片以进行缩放