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