【发布时间】:2018-10-23 12:56:15
【问题描述】:
我正在尝试创建一个计时器。我有一个使用 UIBezierPath 的圆圈,我将制作动画以显示剩余时间。这是绘制形状并将其添加到视图的代码:
func drawBgShape() {
bgShapeLayer.path = UIBezierPath(arcCenter: CGPoint(x: center.x , y: center.y), radius:
bounds.width/2, startAngle: -.pi/2, endAngle: 1.5*.pi, clockwise: true).cgPath
bgShapeLayer.strokeColor = UIColor.red.cgColor
bgShapeLayer.fillColor = UIColor.clear.cgColor
bgShapeLayer.lineWidth = 10
layer.addSublayer(bgShapeLayer)
}
但是,当代码运行时,它看起来像这样;
我尝试了多种方法使进度条居中,但似乎都不起作用。例如,使用 frame.height/2 没有任何效果。
如何让进度条居中?
谢谢。
编辑: bgShapeLayer 是这样定义的:
let bgShapeLayer = CAShapeLayer()
【问题讨论】:
-
一切都取决于bgShapeLayer的框架和位置。但是您没有显示该代码。您展示的所有代码都没有单独的意义。
-
我已经添加了如何定义 bgShapeLayer。没有其他代码会影响 bgShapeLayer。
标签: ios swift xcode uiview addsubview