我想制作一个苹果从树上掉下来的应用程序,用户可以用篮子抓住它。当我触摸屏幕时,篮子开始移动,因此它朝那个方向移动 - 但是慢慢地。为此,我使用
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch* t = [touches anyObject];
CGPoint p = [t locationInView:self.view];
if(p.y <self.view.frame.size.height-50)
{
p.y = self.view.frame.size.height-50;
}
CABasicAnimation *basketmovementAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
[basketmovementAnimation setFromValue:[NSValue valueWithCGPoint:[[self.basketLayer presentationLayer]position]]];
[basketmovementAnimation setDuration:3.0];
[self.basketLayer setPosition:p];
[self.basketLayer addAnimation:basketmovementAnimation forKey:@"basket"];
}
所以问题是如何获得&#34; basket&#34;的坐标。在运动中?我需要它与倒下的苹果的坐标进行比较。 提前致谢
答案 0 :(得分:1)
CALayer有一个方法。
- (id)presentationLayer
来自CALayer类参考
此方法返回的图层对象提供了关闭 当前正在屏幕上显示的图层的近似值。 当动画正在进行时,您可以检索此对象和 用它来获取这些动画的当前值。