我制作了一个应用程序,其中有一个物体一直向移动点移动——这就是我没有使用任何动画功能的原因。问题是我做了这个功能:
CGPoint center = self.im.center; // "i" is a CGPoint, im is an imageview.
if (!CGPointEqualToPoint(self.im.center, i))
{
a = (i.y-center.y)/(i.x-center.x);
//Y = a*X+b - this is a linear function in math
b = (center.y-(a*center.x));
if (i.y>center.y) {
self.im.center = CGPointMake(((center.y+1)-b)/a, center.y+1);
}
else
{
self.im.center = CGPointMake(((center.y-1)-b)/a, center.y-1);
}
}
问题是函数越接近水平直线越快,因为变化主要是在 X 轴上,这意味着如果我在 Y 上加 1,对 X 的变化会更大,这意味着它会移动得更快。
如果有其他方法可以做到这一点,我很乐意尝试,所以如果你知道其他方法,请告诉我!