これは間違いなく、そのようなアプリケーションを構築する正しい方法ではありません。
UIScrollView
は、スクロールしないコンテンツをスクロールするためのものです。また、コンテンツを作成するのにUIImageView
は必要ありません。単純なUIView
で十分です。
ここでは、UIScrollViewを1つ作成し、2本の指で扱うためスクロールを無効にすることをお勧めします。描画は別のジェスチャ認識ツールを操作しながら処理されるためです。
UIPanGestureRecognizer *twoFingerScrolling = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(onTwoFingerScroll:)] autorelease];
[twoFingerScrolling setMinimumNumberOfTouches:2];
[twoFingerScrolling setMaximumNumberOfTouches:2];
UIPanGestureRecognizer *oneFingerDraw = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(onOneFingerDraw:)] autorelease];
[oneFingerDraw setMinimumNumberOfTouches:1];
[oneFingerDraw setMaximumNumberOfTouches:1];
[yourScollView addGestureRecognizer:twoFingerScrolling];
[yourScollView addGestureRecognizer:oneFingerDraw];
以降のコードでは、簡単に両方のイベントを処理することができ、スクロール:
- (void)onTwoFingerScroll:(UIPanGestureRecognizer*)sender
{
// Calculate the content offset from the shifting that occured
//[yourScrollView setContentOffset:theContentOffset]
}
そして
- (void)onOneFingerDraw:(UIPanGestureRecognizer*)sender
{
// Processing the drawing by using comparing:
if (sender.state == UIGestureRecognizerStateBegan)
{ /* drawing began */ }
else if (iRecognizer.state == UIGestureRecognizerStateChanged)
{ /* drawing occured */ }
else if (iRecognizer.state == UIGestureRecognizerStateEnded)
{ /* drawing ended /* }
}
・ホープ(Quartz Tookitによって行うことができる)の描画これは役に立ちます。
もう少しインタラクティブ性を再考することができます。スクロール/パンニングのために1本の指の代わりに2本の指のスワイプ/タッチを使用し、1本の指でタッチして描画する独自のスクロールコンポーネントを構築します。 – adig