我想在一定程度上将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"];
答案 0 :(得分:1)
由于你想沿着一条直线(不是曲线)移动UIView,你只需要两个积分来表示CAKeyFrameAnimation - 起点和终点。事实上,如果你愿意,你甚至可以使用[UIView transistionWithView:] - 只需操纵动画块中的帧即可。
如果您想避免棘手的代数,可以按如下方式绘制三角形:
“一般来说,x
和y
必须满足(x - center_x)^2 + (y - center_y)^2 < radius^2
”