【问题标题】:Cannot invoke 'animateWithDuration' with an argument list of type '(...)'无法使用“(...)”类型的参数列表调用“animateWithDuration”
【发布时间】:2015-08-18 18:40:53
【问题描述】:

我不知道调用 UIView 方法 animateWithDuration 的正确语法。我发现了一些其他人遇到类似问题的示例,并且这些解决方案似乎在最新版本的 Swift 2.0 中不起作用。我收到了这个一般性错误:

无法使用类型为“(持续时间:Double,延迟:Double,选项:UIViewAnimationTransition,动画:()->_,完成:nil)”的参数列表调用“animateWithDuration” p>

我相信我已将问题缩小到“动画:”参数。这是我的代码:

UIView.animateWithDuration(duration: 0.2, 
    delay: 0.0, 
    options: UIViewAnimationTransition.FlipFromLeft, 
    animations: {
        // Hide image here
    }, 
    completion: nil)

任何建议都将不胜感激,谢谢。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    试试这个:

      UIView.animateWithDuration(0.2, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
            }, completion: nil)
    

    Xcode 代码完成通常有助于解决这些问题。 :-)

    此外,对于动画选项,您使用的常量用于其他用途。请改用UIViewAnimationOptions

    【讨论】:

    • 这段代码可以编译,但我需要接受“options:”参数的 animateWithDuration 方法,以便我可以翻转图像部分。我正在尝试实现与此类似的平铺动画:stackoverflow.com/questions/12292431/…
    • 谢谢,这就是问题所在!
    【解决方案2】:

    去掉第一个参数上的duration标签:

    UIView.animateWithDuration(0.2, 
        delay: 0.0, 
        options: UIViewAnimationTransition.FlipFromLeft, 
        animations: {
            // Hide image here
        }, 
        completion: nil)
    

    【讨论】:

    • 谢谢,我把它留在了,因为编译器似乎并不介意任何一种方式。如果没有那个标签,我仍然会看到同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多