无法使用类型的参数列表调用animateWithDuration

时间:2015-06-27 14:39:18

标签: ios swift uiview swift2

我正在尝试将JSSAlertView(github.com/stakes/JSSAlertView)与Swift 2.0一起使用,但我有一个错误:

Cannot invoke animateWithDuration with an argument list of type '(Double, delay: Double, usingSpringWithDampling: Double, initialSpringVelocity: Double, options: nil, animations () -> _, completion: (Bool) -> _)'

代码:

UIView.animateWithDuration(0.5, delay: 0.05, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.5, options: nil, animations: {
        self.containerView.center = self.rootViewController.view.center
        }, completion: { (finished: Bool) in
    })

我看到了这两个答案: Nested closures does not like argument list UIView Animation in Swift not working, wrong arguments error 但他们不帮助我。

我仍然认为问题来自"动画"或者"完成"。

2 个答案:

答案 0 :(得分:6)

从Swift 2开始,选项集不再是nil - 可转换,因此您无法使用nil。但是,它们是数组文字可转换(对于要一起进行OR运算的选项数组),因此您可以使用[]作为无选项。

答案 1 :(得分:1)

您必须提供与options不同的nil。例如.CurveEaseInOut

UIView.animateWithDuration(0.5, delay: 0.05, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.5, options: .CurveEaseInOut, animations: {
    self.containerView.center = self.rootViewController.view.center
    }, completion: { (finished: Bool) in
})