スクロール ビューでズームを処理するジェスチャ認識エンジンを作成しています (一度に 1 つの軸に沿ってスクロールします)。ジェスチャ認識エンジンは動作していますが、ジェスチャ認識エンジンからのデータを使用してビューを適切に変換するのに問題があります。これは私が今していることです:
- (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