私は午前中ずっと試しましたが、それは不可能だと思い始めました。
画面にタッチすると、応答チェーンに入り、何かをした可能性があります。次に、touchesMoved:メソッド(タッチに関連付けられたuiResponderの)と呼ばれる画面上でそれを移動し、おそらく他のことを行いました。この時点で、とにかく、タッチは画面内で移動し続け、他のuiViewに入ると、uiTouchが再初期化されます(つまり、最初のuiViewでtouchEndedを呼び出し、次に新しいuiViewでtouchesBeganを呼び出します。その後、移動を続ける場合はtouchesMovedを呼び出します)。
私はresignFirstResponderを再署名し、手動でメソッドを呼び出そうとしましたが、できません。これには本当に簡単な答えがあるはずだと私は考え続けています。何かのようなもの
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.superview];
if (!CGRectContainsPoint(self.frame, location)) {
[touch restart];
}
また
[[touch phase] restart];
(しかし、ドキュメントには何でもあります):