Chr*_*ard 2 core-animation ios swift
我有一个包含基本形状的 CAShapeLayer,它是在“drawRect”方法期间创建的,如下所示。
override func drawRect(frame: CGRect)
{
let rectangleRect = CGRectMake(frame.minX + 2.5, frame.minY + 2.5, frame.width - 5, frame.height - 5)
let rectanglePath = UIBezierPath(roundedRect: rectangleRect, cornerRadius: 4)
shapeLayer.path = rectanglePath.CGPath
if (self.active == true)
{
shapeLayer.fillColor = selectedColor.CGColor
} else
{
shapeLayer.fillColor = buttonColor.CGColor
}
shapeLayer.strokeColor = buttonOutlineColor.CGColor
shapeLayer.lineWidth = 5.0
self.layer.addSublayer(shapeLayer)
}
Run Code Online (Sandbox Code Playgroud)
我用它来创建一个带有笔划的简单正方形。然后我有另一种方法,它有一个动画CAShapeLayer。但是,当调用该方法时,.NET 上没有任何更改CAShapeLayer。动画方法如下所示。
let animation = CABasicAnimation(keyPath: "strokeColor")
animation.duration = 0.5
animation.repeatCount = 10
animation.fromValue = UIColor.whiteColor()
animation.toValue = UIColor.redColor()
animation.autoreverses = true
shapeLayer.addAnimation(animation, forKey: "strokeColor")
Run Code Online (Sandbox Code Playgroud)
该变量shapeLayer已在类的顶部定义。我很感兴趣为什么这行不通。任何有关如何解决此问题的建议将不胜感激!
这是我每次使用 Quartz/CoreGraphics 时都困扰我的问题。fromValue 和 toValue 需要CGColor参数,而不是UIColor。
只要改变它,这样他们就UIColor.whiteColor().CGColor可以UIColor.redColor().CGColor
一般来说,如果您使用前缀CAor CG,您将需要使用CGColor et al。
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |