NSTimer取消我的UIView.animateWithDuration

时间:2016-02-28 17:39:39

标签: ios swift

每次调用NSTimer时,我的动画都会被取消

/**
 Mueve la imagen en la pantalla
 */
func mover(){


    let x = Int(arc4random_uniform(UInt32( 400 )))
    let y = Int(arc4random_uniform(UInt32( 400 )))

    UIView.animateWithDuration(self.juego!.velocidad,
        delay: 0.0,
        options: [.CurveEaseInOut, .AllowUserInteraction],
        animations: {
            self.imgBicho.center = CGPoint(x: x, y: y)
        },
        completion: { finished in
            self.mover()
    })
}

如何阻止NSTimer取消动画?

{{1}}

我对IOS的开发比较陌生,有人可以帮助我,谢谢。

当然 paulvs ,抱歉这是拼写错误。问题在于NSTimer :(

1 个答案:

答案 0 :(得分:0)

我认为您发布的代码会立即崩溃,并出现类似

的异常
'NSInvalidArgumentException', reason: '-[TestTimer.ViewController timer]: unrecognized selector sent to instance 0x7fb501c3faa0'

因为timer函数有一个参数

func timer(timer:NSTimer!){

当你的NSTimer初始化代码传递一个没有参数的选择器

_ = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timer", userInfo: nil, repeats: true)

要解决此问题,请将此行更改为

_ = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timer:", userInfo: nil, repeats: true)

注意结尾附近的冒号: