2

後で表示するときに、画面外にレンダリングされるにUIGestureRecognizer接続されているを持っています。UILabel表示された後、タップジェスチャレコグナイザは機能しません。ビューでレンダリングすると、正常に機能します。

これが機能しない理由はありますか?そして、どうすればそれを修正できますか?

4

2 に答える 2

0

サブクラス化UILabelと実装hitTest:withEvent:により問題が解決しました

于 2014-03-05T14:47:28.017 に答える
0

それが画面外で「レンダリング」することに関連していることを真剣に疑っています(そして、それはどういう意味ですか)。いずれにせよ、ラベルが画面に表示されたら、ラベルが有効になっていることを確認してから、次のようにすることをお勧めします。

NSArray *grs = label.gestureRecognizers; 
for(UIGestureRecognizer *gr in grs) {
  NSLog(@"Recognizer: %@ enabled=%d state=%d del=%@", NSStringFromClass[gr class]), gr.enabled, gr.state, gr.delegate);
}

オフスクリーンとオンスクリーンの結果を比較することは興味深いでしょう。何かが起こっており、どのプロパティが異なるかを調べる必要があります。ただし、ターゲット/アクションのペアのリストを取得する方法はありません。

于 2012-08-13T20:53:17.270 に答える