swift 如何将 `CGRect(x: 400, y:500` 更改为存储变量

swift how to change `CGRect(x: 400, y:500` to a stored variable

我正在调整一个函数来为我传递给它一个 UIImageView 的东西做动画(一旦我解决了这个问题,我将把 x 和 y 传递给它) 我该如何更改 CGRect(x: 400, y:500

如果我将 CGRect(x: 400, y:500 更改为 CGRect(x: xdis, y:ydis 我在调用中得到构建失败的额外参数 "width" 但按原样工作正常

    func UpAndDown(thingToAnimate:UIImageView)
  {
    UIView.animateWithDuration(5, delay: 0, options: .CurveEaseOut, animations: {
        let xdis = 30
        let ydis = 20
        thingToAnimate.frame = CGRect(x: 400, y:500 , width: thingToAnimate.frame.width, height: thingToAnimate.frame.height)

    }, completion: { finished in
        println("we moved")
})

这可能是因为 xdisydis 属于 Int 类型,而 CGRect 需要 CGFloat 类型作为参数。因此,您需要像这样制作 xdisydis 类型的 CGFloat

let xdis: CGFloat = 30