4

私が書いているiPadアプリの場合、UIViewサブクラスである2つのサブビューを持つコンテナーUIViewがあります。

  • 画像の一部が切り取られてその下にあるものが表示されるUIImageView。
  • UIImageViewの切り取り部分から表示されるUIImageViewの下のUIButton。

UIImageViewはUIButtonと空間的にオーバーラップするため、UIImageViewのアルファマットカットアウトのためにUIButonが完全に表示されていても、タッチがUIButtonに到達するのを防ぎます。UIImageViewがその兄弟UIButtonにタッチを渡すことを許可するにはどうすればよいですか?

ありがとう、
ダグ

4

3 に答える 3

4

UIImageViewは通常、タッチをブロックしませんが、UIViewはブロックします。

重複するビューのuserInteractionEnabledプロパティをNOに設定すると、タッチがそれらを通過する必要があります。

別のアプローチは、thouchesをボタンにリダイレクトするカスタムhitTestを作成することです。

于 2011-04-30T15:13:42.327 に答える
0

Opaqueバスティアンの答えに加えて、インターフェイスビルダーで描画属性のチェックを外す必要もありました。UIImageView

于 2013-05-01T14:22:59.647 に答える
0

UIImageViewをInterfaceBuilderに配置するときのデフォルト値であるユーザーインタラクションが有効になっている場合でも、画像ビューの背景が塗りつぶされている場合でも、タッチは下のボタンに渡されます。ボタンの上にあるUIViewのように、他の何かが起こっている必要があります。

タッチを基になるビューまたはその下にあるビューを持つ別のビューコントローラーに渡すためにもっと複雑なことをしようとしている場合は、次の単純なオープンソースライブラリを作成しました:
https
://github.com/natrosoft/NATouchThroughViewREAMDEとデモはそれを使用する方法を示しています。

于 2013-10-22T11:49:48.310 に答える