0

rootview にカスタム ビューを追加し、UITapGesture を追加しました。UITapGesture コードの「sender.view」を呼び出すと、カスタム UIView では表されなくなり、代わりに「sender.view」が UIImageView 型になります。

そのため、iOS が UIView を予期しているときに、カスタム ビューにメッセージを送信するのが本当に難しくなります。「互換性のないポインター タイプが UIView をパラメーター CardView (カスタム ビュー) に送信しています。

それは一連の反応に関係していると思います。ドキュメントには、「iOS がイベントを認識すると、タッチが発生したビューなど、そのイベントの処理に最も関連性が高いと思われる最初のオブジェクトにイベントが渡されます」と記載されています。- iOSのイベントについて

ここでのキーワードは「思われる」です。カスタム ビューがジェスチャを処理する必要があることを iOS に伝えるにはどうすればよいでしょうか。

質問: sender.view でカスタム ビューを直接参照するにはどうすればよいですか?

以下にいくつかのコードを示します。

//Creates the Card's view
CardView *cardView = [[CardView alloc]initWithFrame:CGRectMake(0, 0, 67,99)];
//For Single Tap
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapGesture:)];
[cardView addGestureRecognizer:tapGesture];
[self.view addSubview:cardView];
4

1 に答える 1

1

では、次handleSingleTapGesture:(UITapGestureTecongnizer *)senderようにキャストされます。

CardView *card = (CardView *)sender.view;
//do you stuff with card 
于 2013-02-28T10:02:17.053 に答える