描画 (線、サイクル、テキストなど) にシングル タッチ イベント (1 本の指) を使用するビューがあります。ここで、このビューを UIScrollView 内に配置して、ズームとパンを許可します。もちろん、ズームとパンの両方を実行するには 2 本の指が必要です。
それを行うパターンは何ですか?UIScrollView のコンテンツがシングルクリックのみを受け入れる (ボタンのみが含まれる) 場合の例のみを見つけました。コンテンツがタッチ操作も必要な場合、何もする必要はありません。
描画 (線、サイクル、テキストなど) にシングル タッチ イベント (1 本の指) を使用するビューがあります。ここで、このビューを UIScrollView 内に配置して、ズームとパンを許可します。もちろん、ズームとパンの両方を実行するには 2 本の指が必要です。
それを行うパターンは何ですか?UIScrollView のコンテンツがシングルクリックのみを受け入れる (ボタンのみが含まれる) 場合の例のみを見つけました。コンテンツがタッチ操作も必要な場合、何もする必要はありません。
scrollview のスクロールを無効にし、両方のユーザー操作を有効にすることから始めるべきだと思います。次に touchesBegan: タッチポイントの数を確認する必要があります。それが 1 つだけの場合 (つまり、ユーザーが描画したい場合)、何もしません (スクロールビューの相互作用を無効にすると、すべてのサブビューも無効になります)。ただし、タッチ ポイントの数が 1 より多い場合は、スクロールを有効にしてから
[UIView setUserInteractionEnabled: NO]
これにより、UIScrollView を 2 本の指でピンチまたはズームしたときに、UIView に線が描画されなくなります。
これらの機能の「マルチタッチ」を有効にすることを忘れないでください。
スクロール ビューで署名プレートを必要とするアプリの開発を手伝いましたが、スクロール ビューのサブビューはイベントに触れるのが奇妙です。少し遅れがありました...しかし、私がやったことは、UIScrollViewをサブクラス化し、オーバーライドすることでした
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {}
メソッドで、タッチが署名プレートのフレームに着地した場合、[scrollView setScrollEnabled:NO]; そして、描画はより早く、よりスムーズに行われました...唯一の問題は、そのボックスからスクロールビューをスクロールできなかったことです..基本的に、スクロールビューでデッドスポットを作成しました
しかし、それは少し不安定です。UITableViewの方がうまくいくと思います...1つの巨大なテーブルセルにするだけで、より良い結果が得られると思います....