だから私は 2 つの UIViews 魔女が bezierpath を描画してからパスを返すことができます。次に、パスにポイントが含まれているかどうかを確認する必要があります。これ[path containsPoint:currentObject.position]
は、ビューの 1 つでは機能しますが、他のビューでは機能しません。1 つのビューは iPhone の上半分にあり、もう 1 つのビューは下半分にあります。一番下のは機能しません。ビューを切り替えようとしましたが、同じ問題でした。下のビューは機能しません。
ここにいくつかのコードがあります:
メインビューコントローラーで:
-(void)didEndPath:(UIBezierPath *)path DrawView:(DrawView *)draw {
if ([path containsPoint:currentObject.position]) {
//do stuff
}
}
そして、ドロービュータッチで終了しました:
[self.delegate didEndPath:currentPath DrawView:self];
ビューがself.view以外の別のオリジンを持っている可能性がありますか? どうすれば修正できますか?
編集:
さて、問題は見つかりましたが、解決策は見つかりませんでした。
UIView のタッチ メソッドを this: から this: に変更すると、タッチ
startPoint = [touch locationInView:self];
はstartPoint = [touch locationInView:self.superview];
正しく読み取られますが、パスは描画されません。それでも問題は下部の uiview だけです。では、スーパービューで場所に触れるパスを返すように変更するにはどうすればよいですか?