I'm trying to do an animation and used the below code. I'm getting "Cannot invoke 'animateWithDuration' with an argument list of type '(FloatLiteralConvertible, delay: FloatLiteralConvertible, options: UIViewAnimationOptions, animations: () -> () -> $T4, completion: (Bool) -> (Bool) -> $T5)'" Error.
This means I'm using wrong arguments. I could be wrong. Please help in this. I couldn't really resolve it.
var basketTopFrame = CGRect()
basketTopFrame = dropPlace.frame
var mytimer : NSTimer = NSTimer .scheduledTimerWithTimeInterval(2.0, target: self, selector: "restart", userInfo: nil, repeats: false)
UIView.animateWithDuration(1.0, delay: 0.1, options: UIViewAnimationOptions.CurveEaseIn , animations: { var pickPlace = basketTopFrame }, completion: {(finished: Bool) in mytimer })
Thanks in advance.
Closures have auto return if there is only one statement. Due to that in your case it is returning NSTimer
and not Void
. Your provided closure doesn't match signature closure. You have to call method on myTimer
, for example, to fix this issue:
UIView.animateWithDuration(1.0, delay: 0.1, options: UIViewAnimationOptions.CurveEaseIn,
animations: {
var pickPlace = basketTopFrame
},
completion: { (finished: Bool) in
mytimer.fire()
}
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With