0

タッチが開始するとUIViewにエフェクトを適用し、タッチが終了するとそのエフェクトを元に戻すという状況があります。だから基本的に私は追跡しているtouchesbegantouchesEndedそしてtouchesCancelledUIViewのメソッド。ただし、問題は、ビューが画面から消えたとき、つまり、ビューまたはその親の1つがスーパービューから削除されたときに、それ以上タッチイベントを取得しないことです。touchesendedこの「最後の」イベントをビューに与える方法はありますか?UIViewが非表示であることが通知された場合は、このイベントをその目的に使用することもできます。

わかりました。コメントの回答を元の質問に移動して、重要なポイントを適切に要約します。

  • タッチイベントを追跡している理由は、タッチ開始時に光るなどのいくつかの優れた効果を適用し、タッチ終了時にそれらの効果を削除したいからです。
  • これらのビューの削除をシミュレートできない理由touchesEndedは、それらを直接削除しないためです。代わりに、それらの祖先ビューの1つを削除します。UIWindowまでの祖先ビューを追跡することはできません。技術的に不可能だと思います。代わりに、フレームワークはこれをイベントとして提供する必要があると思います。
4

1 に答える 1

0

-(void)willMoveToWindow:(UIWindow *)newWindowメソッドをオーバーライドしてnewWindowisかどうかを確認することで問題を解決しnilました。

于 2012-04-28T03:58:04.527 に答える