当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn

Posted

技术标签:

【中文标题】当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn【英文标题】:Swift cant resolve CurveEaseIn in UIView.animateWithDuration when using parameter from function inside animation block 【发布时间】:2015-06-19 09:44:11 【问题描述】:

我正在尝试将参数传递给函数以动态更改动画块中的布局约束。

这行得通:

func moveKeyboard (up: Bool, newMargin: Int)


    UIView.animateWithDuration(0.2, delay: 0, options: .CurveEaseIn, animations: 

        self.topMarginConstraint.constant=10;

        , completion:  finished in
            println("Animation end!")
    )


这没有(我收到错误“找不到成员 CurveEaseIn”):

 func moveKeyboard (up: Bool, newMargin: Int)


    UIView.animateWithDuration(0.2, delay: 0, options: .CurveEaseIn, animations: 

        self.topMarginConstraint.constant=newMargin;

        , completion:  finished in
            println("Animation end!")
    )

 

我应该如何定义我的函数才能在动画块中使用 newMargin 参数?

【问题讨论】:

【参考方案1】:

这是因为,“常量”的类型是“CGFLoat”,而您传递的是“Int”:

func moveKeyboard (up: Bool, newMargin: CGFloat)
    

        UIView.animateWithDuration(0.2, delay: 0, options: UIViewAnimationOptions.CurveEaseIn, animations: 

            self.topMarginConstraint.constant = newMargin;

            , completion:  finished in
                println("Animation end!")
        )

    

检查一下,它工作正常。

【讨论】:

以上是关于当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn的主要内容,如果未能解决你的问题,请参考以下文章

如何使用swift 3为按钮设置动画以淡出然后淡入

UIView Swift 倾斜动画

无法使用 animator() [ OSX ] 为 Swift 自定义属性设置动画

Swift 春季动画在 UITableViewCell 上无法正常工作

解析 JSON 冻结 tableView SWIFT

AWS Lambda 错误:当 url 参数包含 JSON 数组时,“无法将请求正文解析为 json”