Xamarin.iOSのUIView派生クラスでGestureRecognizerが動かないとき
ナビゲーションに移動
検索に移動
UIViewのUserInteractionEnabledプロパティをtrueにするとGestureRecognizerが動き出す。
class CustomView : UIView
{
// GestureRecognizerはフィールド変数にしておいてUIView破棄時に
// 明示的にDisposeしないとメモリリークする模様。
UITapGestureRecognizer doubleTapGesture;
void Setup()
{
// GestureRecognizerを生成
doubleTapGesture = new UITapGestureRecognizer( () => {
Console.WriteLine("double tap");
});
// GestureRecognizerをダブルタップに設定
doubleTapGesture.NumberOfTapsRequired = 2;
// UIViewにGestureRecognizerを追加
this.AddGestureRecognizer(doubleTapGesture);
// これ重要
// UIViewでGestureRecognizerを有効にする
this.UserInteractionEnabled = true;
}
}