我正在使用Swift項目,並圍繞UIButton創建一個圓,使用CAShapeLayer並創建一個循環的UIBezeir路徑。問題是如果我將這個CAShapLayer作爲子層添加到UIbutton,它會不行。但是,在UiView上添加此子圖層將創建該圓。添加CAShapeLayer到UIButton不工作
以下是我的代碼。
let ovalPath = UIBezierPath(arcCenter: lockButton.center, radius:
CGFloat(lockButton.frame.size.width/2), startAngle: CGFloat(startAngle), endAngle: CGFloat(sentAngel), clockwise: true)
UIColor.grayColor().setFill()
ovalPath.fill()
let circleLayer = CAShapeLayer()
circleLayer.path = ovalPath.CGPath
view.layer.addSublayer(circleLayer)
circleLayer.strokeColor = UIColor.blueColor().CGColor
circleLayer.fillColor = UIColor.clearColor().CGColor
circleLayer.lineWidth = 10.0
let animation = CABasicAnimation(keyPath: "strokeEnd")
// Set the animation duration appropriately
animation.duration = 0.5
// Animate from 0 (no circle) to 1 (full circle)
animation.fromValue = 0
animation.toValue = 1
// Do a linear animation (i.e. the speed of the animation stays the same)
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
// Set the circleLayer's strokeEnd property to 1.0 now so that it's the
// right value when the animation ends.
circleLayer.strokeEnd = 3.0
// Do the actual animation
circleLayer.addAnimation(animation, forKey: "animateCircle")
任何人都可以建議我,如果我們可以添加CAShapeLayer到UIButton? 謝謝
您應該可以將CAShapeLayer添加到** any ** CALayer的子圖層。使其表現完全是另一個問題。你想做什麼? 「圓形按鈕」不需要任何新圖層。掩蓋邊界也是我沒有看到的。因此,請詳細說明什麼是和不在工作,也許我可以幫忙。 – dfd
我正在努力在按鈕周圍添加循環進度 –
任何具體原因? –