Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在一定程度上将UIImageview从A点移动到B点_Ios_Objective C_Uiimageview_Core Animation - Fatal编程技术网

Ios 如何在一定程度上将UIImageview从A点移动到B点

Ios 如何在一定程度上将UIImageview从A点移动到B点,ios,objective-c,uiimageview,core-animation,Ios,Objective C,Uiimageview,Core Animation,在某种程度上,我想把一个UIImageview从a点移到B点。 红色和蓝色箭头表示我希望点移动的程度 我可以把点从一个点移动到另一个点,但是我如何在一定程度上移动音符呢 NSLog(@"cgpoint %@",NSStringFromCGPoint(self.aggressiveDots.frame.origin)); CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];

在某种程度上,我想把一个UIImageview从a点移到B点。 红色和蓝色箭头表示我希望点移动的程度

我可以把点从一个点移动到另一个点,但是我如何在一定程度上移动音符呢

    NSLog(@"cgpoint %@",NSStringFromCGPoint(self.aggressiveDots.frame.origin)); 
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
NSArray *times = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0], nil];
[anim setKeyTimes:times];   
NSArray *values = [NSArray arrayWithObjects:[NSValue valueWithCGPoint:CGPointMake(118, 188.)],
                   [NSValue valueWithCGPoint:CGPointMake(115, 300.)], nil];
[anim setValues:values];
[anim setDuration:6.0]; //seconds    
[self.redDots.layer addAnimation:anim forKey:@"position"];


由于您希望沿直线(而非曲线)移动UIView,因此您只需要两个点即可进行关键帧的移动—起点和终点。事实上,如果需要,您甚至可以使用[UIView transistionWithView:]进行此操作-只需操纵动画块中的帧即可

  • 你已经知道出发点了
  • 要计算终点,您需要找到红色圆的边与白色圆相交的点。有一个方程可以解两个圆的交点
如果你想避免复杂的代数,你可以画一个三角形,如下所示:

  • 使用简单的直线方程y=mx+b,让第一个圆沿直线向下移动
  • 使用概述的公式测试圆的边(即沿中心前方直线的半径点)是否在三角形内

“一般来说,
x
y
必须满足
(x-中心x)^2+(y-中心y)^2

因为您希望沿直线(而不是曲线)移动UIView,所以您的CAKeyKeyFrameanimation只需要两个点—起点和终点。事实上,如果需要,您甚至可以使用[UIView transistionWithView:]进行此操作-只需操纵动画块中的帧即可

  • 你已经知道出发点了
  • 要计算终点,您需要找到红色圆的边与白色圆相交的点。有一个方程可以解两个圆的交点
如果你想避免复杂的代数,你可以画一个三角形,如下所示:

  • 使用简单的直线方程y=mx+b,让第一个圆沿直线向下移动
  • 使用概述的公式测试圆的边(即沿中心前方直线的半径点)是否在三角形内

“一般来说,
x
y
必须满足
(x-中心x)^2+(y-中心y)^2

你所说的“在一定程度上移动注释”是什么意思?@rmaddy附在第二张图片上。要将红点移向白点如果您知道这两点,只需使用
UIView animateWithDuration:delay:options:animations:completion:
或其变体之一设置帧中更改的动画即可。我还是不明白这个问题。如果你知道如何将点从一个点移动到另一个点,你不知道什么部分?你所说的“在一定程度上移动音符”是什么意思?@rmaddy附在第二张图片上。要将红点移向白点如果您知道这两点,只需使用
UIView animateWithDuration:delay:options:animations:completion:
或其变体之一设置帧中更改的动画即可。我还是不明白这个问题。如果你知道如何将点从一个点移动到另一个点,你不知道什么部分?