2

UIView に UIButton があります。これは、.xib ファイルから割り当てて初期化した UIViewController にあります。

IBAction を UIButton の「Touch Down」イベントにフックすると、正しくトリガーされます。しかし、「Touch Up Inside」イベントに接続すると反応しません。

他のイベントも機能しません。「タッチドラッグエンター」「タッチドラッグイグジット」「タッチアップアウトサイド」など。タッチダウンのみ。

なぜこれが考えられるのか誰にも分かりますか?

リッチ

4

1 に答える 1

4

まず、IB に正しく接続された UIButtons が touch-up-inside イベントに期待どおりに応答することを絶対に、積極的に保証できます。(そうでなかったら想像できますか?!)

それを考えると、期待どおりに接続していないことは公正な賭けです。以下のことを試してみてください。

  • アクションで最初にログ ステートメントを出力するようにします。

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • ボタンが配線されている唯一の機能がタッチアップインサイド アクションであることを IB で確認してください。(後で、複数のイベントに接続できますが、テストのために、できるだけ単純化したいと考えています。)

  • ボタンが 50x50 以上であることを確認してください。(小さいボタンは押しにくいです。)
  • ここでは、ボタンを角丸四角形のボタンにします。画像ボタンがあり、画像に透明度がある場合、押しにくい場合があります。
  • アクションの署名が正しいことを確認してください。

    - (IBAction) myButtonPressedAction: (id) sender;

  • すべてがクリーンであることを確認するために、.xib からボタンを削除して、再度追加します。

  • 親ビューがuserInteractionEnabled設定されていることを確認してください。
  • xib の FileOwner がビュー コントローラーのタイプであることを確認してください。

それでも解決しない場合は、問題の領域について詳しくお知らせください。おそらく、IB のボタン設定のスクリーンショットとプロジェクトのコード スニペットを追加してください。

于 2011-06-28T15:45:37.873 に答える