Рамка CALayer не вписывается в UIView - PullRequest
0 голосов
/ 30 октября 2018

У меня есть UIView, который должен содержать CALayer. По какой-то причине (я, должно быть, не понял, как полностью работают CALayer и UIView), он не работает должным образом.

Вот как это выглядит:

circular view

Это мой код для позиционирования вида:

let xPosition = self.viewCenterAnimation.frame.origin.x
let yPosition = self.viewCenterAnimation.frame.origin.y
let position = CGPoint(x: xPosition, y: yPosition)

self.circularProgressBar = CircularProgressBar(radius: 50, position: position, innerTrackColor: UIColor.watermelonDark(), outerTrackColor: UIColor.watermelonLight(), lineWidth: 20)
self.viewCenterAnimation.layer.addSublayer(self.circularProgressBar)

Это код для создания CALayer и пути:

public init(radius: CGFloat, position: CGPoint, innerTrackColor: UIColor, outerTrackColor: UIColor, lineWidth: CGFloat) {
    super.init()

    circularPath = UIBezierPath(arcCenter: .zero, radius: radius, startAngle: 0, endAngle: .pi * 2, clockwise: true)
    outerTrackShapeLayer = CAShapeLayer()
    outerTrackShapeLayer.path = circularPath.cgPath
    outerTrackShapeLayer.position = position
    outerTrackShapeLayer.strokeColor = outerTrackColor.cgColor
    outerTrackShapeLayer.fillColor = UIColor.clear.cgColor
    outerTrackShapeLayer.lineWidth = lineWidth
    outerTrackShapeLayer.strokeEnd = 1
    outerTrackShapeLayer.lineCap = kCALineCapRound
    outerTrackShapeLayer.transform = rotateTransformation
    addSublayer(outerTrackShapeLayer)

    innerTrackShapeLayer = CAShapeLayer()
    innerTrackShapeLayer.strokeColor = innerTrackColor.cgColor
    innerTrackShapeLayer.position = position
    innerTrackShapeLayer.strokeEnd = progress
    innerTrackShapeLayer.lineWidth = lineWidth
    innerTrackShapeLayer.lineCap = kCALineCapRound
    innerTrackShapeLayer.fillColor = UIColor.clear.cgColor
    innerTrackShapeLayer.path = circularPath.cgPath
    innerTrackShapeLayer.transform = rotateTransformation
    addSublayer(innerTrackShapeLayer)
}

Очевидно, я хочу, чтобы круг идеально помещался внутри белого UIView.

Заранее спасибо!

...