1

UITapGestureRecognizer を持つ UIView で UITableView を使用すると、いくつか問題が発生します。UITableViewCell をクリックしても、背景は選択したものに変わりません (タッチが受信されないため)。

子ビューを親ビューに追加すると、子ビューはタッチを処理でき、すべてが引き続き機能すると想定していました。ただし、これは cas ではありません。UITableviewCell をタップすると、タップはこの親ビューによって処理され、セルは選択されません。

UITableViewCellからのタッチイベントを無視するために、「UITapGestureRecognizer」をサブクラス化しようとしました:(モノタッチコード)

public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
        {
            if (touch.View.GetType () == typeof(UITableViewCell))
                return false;
            return true;
        }

セルをクリックしたために機能しません。「touch.View.GetType ()」は「UIView」を返し、無視されます。

テーブルビューを UITapGestureRecognizer を使用して UIView で動作させる方法はありますか?

親ビューから「UITapGestureRecognizer」を削除すると、テーブルビューは正常に動作します。

ありがとうマット

4

1 に答える 1

5

UITapGestureRecogizer を作成するときに、setCancelsTouchesInView プロパティを NO に設定します。これにより、UITableViewCell がタッチを受信できるようになります。

于 2013-07-16T18:38:33.053 に答える