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

这有效:

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参数?

最佳答案

这是因为“常量”的类型为“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!")
        })

    }

检查一下,它工作正常。

09-11 06:05