Xamarin.iOSのUIView派生クラスでGestureRecognizerが動かないとき

提供: MonoBook
2020年12月25日 (金) 03:06時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「UIViewのUserInteractionEnabledプロパティをtrueにするとGestureRecognizerが動き出す。 <source lang="csharp"> class CustomView : UIView { // GestureRec…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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;
    }
}