Ionic 2にはtap
、press
、pan
、swipe
、rotate
、pinch
といったアプリ操作に欠かせないジェスチャーが用意されています。ありがたし
Gestures | Ionic Component Documentation
ジェスチャーはボタンなどのUIに設定することが多いと思いますが、そのUIに指を乗せてスワイプしてもスクロールできないショッキングな出来事に遭遇します。ジェスチャーの挙動的には正しいかもしれないですが、スクロールして見ていく画面では操作しづらくなってしまい致命的です。
とは言えユーザー入力はなくせないので、別のイベントで代用すると回避できるものもあります。
備忘録も兼ねてまとめておきます。
tap
(タップ)
<button (tap)="handler()"></button>
UIに指を置いた状態でもスクロールさせたい場合は、click
に置換えます。
<button (click)="handler()"></button>
press
(長押し)
<button (press)="handler()"></button>
pan
(ドラッグ)
<button (pan)="handler()"></button>
rotate
(回転)
<button (rotate)="handler()"></button>
swipe
(スワイプ)
<button (swipe)="handler()"></button>
pinch
(ピンチ)
<button (pinch)="handler()"></button>
なかなか代用できませんでした。。
即席で代用できたのはtap
→press
だけでした。Ionic 2で実装するときは、ユーザー入力とスクロールがバッティングしないように気をつけたほうがいいですね。長押しはmousedown
から数秒たったら適応するなどはできそうですが
他にいい方法があったらぜひご教示お願いします!