2012-02-16 9 views
0

スケッチパッドアプリケーションを作成しようとしています。目的C:UIScrollViewに指で描画する

ページングにはUIScrollViewを使用し、図面にはUIImageViewを使用しました。

私はUIImageViewをscrollViewの上に置きますが、UIScrollViewには追加されないため、スクロールしません。

今...

私はそれが書き込むためのボタンを使用してNOに設定する必要があります...

[scrollView setScrollEnable:YES]; 
[scrollView setUserInteractionEnabled:YES]; 

を書いていない問題ボタンを使わずにスクロールして同時に書くことができる方法はありますか?

+0

もう少しインタラクティブ性を再考することができます。スクロール/パンニングのために1本の指の代わりに2本の指のスワイプ/タッチを使用し、1本の指でタッチして描画する独自のスクロールコンポーネントを構築します。 – adig

答えて

3

これは間違いなく、そのようなアプリケーションを構築する正しい方法ではありません。

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によって行うことができる)の描画これは役に立ちます。

関連する問題