每1秒移动一次UIimage

时间:2017-04-11 17:17:18

标签: ios swift uiimage projectile

我有一个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))
    }
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

正如Losiowaty所说,UIView.animationWithDuration是要走的路。查看此答案,了解语法如何:https://stackoverflow.com/a/30992214/5257729