画面上で右から左に移動しているオブジェクトがあります。
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:7.8];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
myImageview.layer.position = CGPointMake(20, myImageView.layer.position.y);
[UIView commitAnimations];
アニメーションがまだ行われている間でも、XCodeはすでに画像の場所を最終的な宛先としてマークしていることがわかりました。動画のタッチを検出するには、presentationLayerを使用する必要があります。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
if ([myImageview.layer.presentationLayer hitTest:touchPoint]) {
NSLog(@"it's a hit!");
}
}
この部分は機能します。さて、押すと画像が上に移動して欲しいです。 横向きの動きを続けながら、画像を上に動かしてほしい。 代わりに、このコードは画像を上に移動するだけでなく、左側の最終的な目的地まで移動します。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
if ([mouse.layer.presentationLayer hitTest:touchPoint]) {
NSLog(@"it's a hit!");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
myImageView.layer.position = CGPointMake( mouse.layer.position.x, myImageView.layer.position.y - 40);
[UIView commitAnimations];
}
}
横向きの動きを続けながら、画像を上に動かしてほしい。誰かがこれを達成する方法を知っていますか?
本当にありがとう!