我目前正在 ios 开发中迈出摇摇欲坠的第一步。我正在尝试为一个自由落体的球制作动画。我有一个连接到 IBAction 的按钮,以及包含我的球图像的 UIImageView。
在我的动作中,我有一个使用 NSTimeInterval 计时的 while 循环,并根据它计算一个新位置所花费的时间,直到球到达“地面”(是的,我意识到这可能是最不理想的方法。但是我很难掌握语法(这可能是我的问题所在),优化将不得不稍后进行)。据我所知, NSTimeInterval 以秒为单位返回经过的时间,因此即使它会增加非常小的步数,它也应该可以工作。但我可能有严重的脑放屁。
到目前为止,一切都很好。但是当我点击按钮时,球直接从起点移动到终点,没有动画。
-(IBAction)doshit:(id)sender{
int G = 10;
CGPoint center = [myImage center];
NSDate *startTime = [NSDate date];
NSTimeInterval T;
T = fabs([startTime timeIntervalSinceNow]);
while (center.y<480)
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:T];
center.y=center.y+((G*T*T)/2);
[myImage setCenter:center];
T = fabs([startTime timeIntervalSinceNow]);
[UIView commitAnimations];
}
}
我欢迎所有建议!=)