1

UIScrollViewにUIButtonが追加されたサブビューがあります。

ユーザーがスクロールしていない限り、ボタンは完全に機能しています。ユーザーがボタンをクリックしたときにUIScrollViewがまだスクロールしている場合は、代わりにスクロールを停止します(行がクリックされた場合など)。

誰もがこれを修正する方法を知っていますか?

4

1 に答える 1

2

まず、これが実際に必要な動作であることを確認してください。iOS ユーザーは、ビューをスクロールし、タップしてボタンを押すことなくビューを停止することに慣れています。非標準的な動作 (標準的な動作よりも優れていると考えている場合でも) は、他の iOS アプリでの動作に慣れているユーザーを混乱させる可能性があります。これは、メンタル モデルに違反する可能性があります。さて、以上の注意事項。

では、これをどのように修正しますか?UIScrollViewそれらのタッチがスクロールイベントであるかどうかがわかるまで、タッチイベントの送信を遅らせます。問題は、ユーザーのタップ移動中のスクロール イベントでUIScrollViewあることです。考えられる解決策は次の 2 つです。

  1. が取得したタッチUIScrollViewイベントを遅延させないようにします。スクロール ビューdelaysContentTouchesを に設定NOすると、遅延アクションが停止し、スクロール中にボタンをタップできるようになります。UIScrollViewクラスのドキュメントでそれについて読むことができます。あなたもcanCancelContentTouchesそこを読んでみたいと思うでしょう。

  2. をサブクラス化しUIScrollViewて、タッチ イベントの移動先に関する独自のロジックを追加します。これを行う方法について説明しているブログ投稿を次に示します

于 2012-12-08T21:09:44.737 に答える