我有一个UIimage,我想按照某些方程(物理弹丸时间方程)给出的X和Y移动,我希望它每1秒移动一次,这样它对用户来说就好像它是一样的'实际上,移动不只是消失,而是重新出现在最后一个位置,加上我给出的位置是错误的。对于其中一个或两个问题,我将不胜感激。
到目前为止,我试过这个:
运动功能:
func moveCannonBall(toX:Int , toY:Int ){
var frm: CGRect = ballimageview.frame
frm.origin.x = frm.origin.x + CGFloat(toX)
frm.origin.y = frm.origin.y - CGFloat(toY)
ballimageview.frame = frm
}
在按钮上单击它应该采用用户的输入(重力,角度和初始速度)
@IBAction func getAlpha( sender:AnyObject){
gravity = Float(g[pickerView.selectedRow(inComponent: 0)])
xMax = ((V0*V0)*sin(2.0*angle))/gravity
它应该每1秒停一次,但只有计算每1秒暂停一次,UIimage就会消失并重新出现
while Int(toX) < Int(xMax) {
sleep(1)
t = t + 1
toX = V0*cos(angle)*t
toY = -0.5*gravity*t*t + V0*sin(angle)*t
moveCannonBall(toX: Int(toX), toY: Int(toY))
}
}
感谢任何帮助。
答案 0 :(得分:-1)
正如Losiowaty所说,UIView.animationWithDuration是要走的路。查看此答案,了解语法如何:https://stackoverflow.com/a/30992214/5257729