どのようにUITableViewCellののImageViewの上でタッチイベントを取得しますか?

StackOverflow https://stackoverflow.com/questions/1781543

  •  21-09-2019
  •  | 
  •  

質問

私は、通知を取得したいときに、ユーザーシングルタップまたはのUITableViewCellのImageViewの上をダブルタップ。 withEvent:サブビューコントローラで、私が期待したイベントをトリガすることができない私は、tryがImageViewのにサブビューを追加し、touchesBeganを使用するようになっています。どのように私は仕事をすることができますか?

役に立ちましたか?

解決

私のプロジェクトで、私はあなたが単にAppleのサンプルコード、プロジェクト「TapToZoom」で見ることができ便利です場合、ユーザーとの対話を追加するUIImageViewをサブクラス化しています。 ショートパンツでは、ユーザーとの対話を有効にする必要があり、それだけで後にUIImageViewは、タッチに答えるために開始します。 これはuserInteractionEnabledプロパティを設定することによって行われます:

[self setUserInteractionEnabled:YES];

あなたは、たとえば、することにより、他のタッチのプロパティをカスタマイズすることができます:

[self setMultipleTouchEnabled:YES];
twoFingerTapIsPossible = YES;
そうしないと、写真アプリ、みましょうと言うように、サムネイルビューの並べ替えを実装することができます。あなたの目的に応じて、あなたも、あなたが背景画像を設定することができますUIButtonを使用して考えることができます。私は単純に各のtableView行でプログラム4 UIButtonsを置くことによって、元の写真アプリのビューサムネイル写真を模倣するプロジェクトを持っている、そしてそれは罰金に動作します。 乾杯

他のヒント

もう一つの解決策ます:

タッチイベントを処理するためにUIImageViewにカテゴリを追加します。そして、各タッチイベントの通知を送信し、ビューコントローラでの通知(またはセルコントローラ)に加入しています。

あなたは陽気を感じている場合は、あなたの可能性もビューコントローラに転送メソッド呼び出します。

次に、セルのImageViewのためのタッチイベントを有効ます:

[self setUserInteractionEnabled:YES];
あなたがそれらを処理する場所

これで、すべてのタッチがサブクラス化せずに、送信されます。そして、それは再利用可能である。

上の答えのおかげでは、ジョブが行われています。

My solution: 
  subclass a UIView, override touchesBegan:withEvent: in it's implementation file
  add the UIView(as subview) to cell.view and cover the position of imageView, then make the subview nearest transparent(alpha=0.015f)
  done.
  it works fine

:?アルファ数は(0.01f)が小さすぎる場合には、タッチイベントがトリガされません、誰もが、なぜ

知っています
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top