Я работаю над проектом 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? Thanks
Вы должны иметь возможность добавить CAShapeLayer в ** любые подслои CALayer **. Сделать его поведение - это еще один вопрос. Что ты пытаешься сделать? «Круглая кнопка» не нуждается в новых слоях. Маскировка к границам также я не вижу. Поэтому дайте более подробную информацию о том, что есть и не работает, может быть, я могу помочь. – dfd
Я пытаюсь добавить Круговой прогресс вокруг кнопки –
Любые конкретные причины для этого? –