如何使用/不使用UIBezierPath在Swift中传播图像?

时间:2015-01-25 07:56:47

标签: ios swift uibezierpath

我正在尝试使用UIBezierPath制作图像。以下是我用来确定图片的xy坐标,宽度和高度的代码。

var frm : CGRect = self.image.frame
    let originX = frm.origin.x
    let originY = frm.origin.y
    let originWidth = frm.size.width
    let originHeight = frm.size.height
    self.image.frame = frm

但是,如果我在此代码中添加originXoriginY

let path = UIBezierPath()
    path.moveToPoint(CGPoint(x: originX+50, y: originY))
    path.addCurveToPoint(CGPoint(x: originX-20, y: originY),
    controlPoint1: CGPoint(x: originX+20, y: originY),
    controlPoint2: CGPoint(x: originX-10, y: originY))

    let anim = CAKeyframeAnimation(keyPath: "position")

    // set the animations path to our bezier curve
    anim.path = path.CGPath

    anim.repeatCount = Float.infinity
    anim.duration = 5.0

    image.layer.addAnimation(anim, forKey: "animate position along path")

图像只停留在屏幕的左上角(而不是靠近中心放置)。为什么?顺便说一句,除了使用UIPathBezier之外,还有其他方法可以使图像循环吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要覆盖UIBezierPath()构造函数,以便您可以将参数设为originXoriginY,同时必须使用var而不是{{} 1}}因为let是一个简单变量而且let是var,并且无法在Swift中修改它。

我没有Xcode,但代码看起来应该是这样的:

constant