後で表示するときに、画面外にレンダリングされるにUIGestureRecognizer
接続されているを持っています。UILabel
表示された後、タップジェスチャレコグナイザは機能しません。ビューでレンダリングすると、正常に機能します。
これが機能しない理由はありますか?そして、どうすればそれを修正できますか?
後で表示するときに、画面外にレンダリングされるにUIGestureRecognizer
接続されているを持っています。UILabel
表示された後、タップジェスチャレコグナイザは機能しません。ビューでレンダリングすると、正常に機能します。
これが機能しない理由はありますか?そして、どうすればそれを修正できますか?
サブクラス化UILabel
と実装hitTest:withEvent:
により問題が解決しました
それが画面外で「レンダリング」することに関連していることを真剣に疑っています(そして、それはどういう意味ですか)。いずれにせよ、ラベルが画面に表示されたら、ラベルが有効になっていることを確認してから、次のようにすることをお勧めします。
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);
}
オフスクリーンとオンスクリーンの結果を比較することは興味深いでしょう。何かが起こっており、どのプロパティが異なるかを調べる必要があります。ただし、ターゲット/アクションのペアのリストを取得する方法はありません。