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