我正在尝试使用UIBezierPath
制作图像。以下是我用来确定图片的x
和y
坐标,宽度和高度的代码。
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
但是,如果我在此代码中添加originX
和originY
:
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
之外,还有其他方法可以使图像循环吗?
答案 0 :(得分:0)
首先,您需要覆盖UIBezierPath()
构造函数,以便您可以将参数设为originX
和originY
,同时必须使用var
而不是{{} 1}}因为let
是一个简单变量而且let是var
,并且无法在Swift中修改它。
我没有Xcode,但代码看起来应该是这样的:
constant