【发布时间】:2020-09-01 19:53:23
【问题描述】:
我很难确保圆形进度条始终位于与其关联的UIView 的中心。
这是正在发生的事情:
忽略灰色区域,这只是占位卡上的UIView。红色是UIView,我作为出口添加到UIViewController。
下面是我制作的类的代码:
class CircleProgress: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
var progressLyr = CAShapeLayer()
var trackLyr = CAShapeLayer()
var progressClr = UIColor.red {
didSet {
progressLyr.strokeColor = progressClr.cgColor
}
}
var trackClr = UIColor.black {
didSet {
trackLyr.strokeColor = trackClr.cgColor
}
}
private func setupView() {
self.backgroundColor = UIColor.red
let centre = CGPoint(x: frame.size.width/2, y: frame.size.height/2)
let circlePath = UIBezierPath(arcCenter: centre,
radius: 10,
startAngle: 0,
endAngle: 2 * CGFloat.pi,
clockwise: true)
trackLyr.path = circlePath.cgPath
trackLyr.fillColor = UIColor.clear.cgColor
trackLyr.strokeColor = trackClr.cgColor
trackLyr.lineWidth = 5.0
trackLyr.strokeEnd = 1.0
layer.addSublayer(trackLyr)
}
}
目的只是让黑色圆圈的所有 4 个边缘都接触红色正方形的边缘。
非常感谢任何帮助。我在想这一定太明显了,但这今晚花了我太多时间。 :)
【问题讨论】:
标签: swift uiview storyboard