4

描画 (線、サイクル、テキストなど) にシングル タッチ イベント (1 本の指) を使用するビューがあります。ここで、このビューを UIScrollView 内に配置して、ズームとパンを許可します。もちろん、ズームとパンの両方を実行するには 2 本の指が必要です。

それを行うパターンは何ですか?UIScrollView のコンテンツがシングルクリックのみを受け入れる (ボタンのみが含まれる) 場合の例のみを見つけました。コンテンツがタッチ操作も必要な場合、何もする必要はありません。

4

4 に答える 4

2

scrollview のスクロールを無効にし、両方のユーザー操作を有効にすることから始めるべきだと思います。次に touchesBegan: タッチポイントの数を確認する必要があります。それが 1 つだけの場合 (つまり、ユーザーが描画したい場合)、何もしません (スクロールビューの相互作用を無効にすると、すべてのサブビューも無効になります)。ただし、タッチ ポイントの数が 1 より多い場合は、スクロールを有効にしてから

[UIView setUserInteractionEnabled: NO]

これにより、UIScrollView を 2 本の指でピンチまたはズームしたときに、UIView に線が描画されなくなります。

于 2013-06-29T20:15:27.247 に答える
1

これらの機能の「マルチタッチ」を有効にすることを忘れないでください。

于 2013-07-04T08:26:27.523 に答える
1

スクロール ビューで署名プレートを必要とするアプリの開発を手伝いましたが、スクロール ビューのサブビューはイベントに触れるのが奇妙です。少し遅れがありました...しかし、私がやったことは、UIScrollViewをサブクラス化し、オーバーライドすることでした

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {}

メソッドで、タッチが署名プレートのフレームに着地した場合、[scrollView setScrollEnabled:NO]; そして、描画はより早く、よりスムーズに行われました...唯一の問題は、そのボックスからスクロールビューをスクロールできなかったことです..基本的に、スクロールビューでデッドスポットを作成しました

しかし、それは少し不安定です。UITableViewの方がうまくいくと思います...1つの巨大なテーブルセルにするだけで、より良い結果が得られると思います....

于 2013-06-05T12:24:38.920 に答える