我写了一个UIView
子类,它完全符合您的要求。您只需提供一组环以及一些其他参数,它就会为您处理所有设置和管理。
https://github.com/lionheart/ConcentricProgressRingView
在您的顶部UIViewController
,导入模块:
import ConcentricProgressRingView
然后,在你的viewDidLoad
:
let rings = [
ProgressRing(color: UIColor.redColor()),
ProgressRing(color: UIColor.blueColor()),
]
let margin: CGFloat = 2
let radius: CGFloat = 80
let progressRingView = ConcentricProgressRingView(center: view.center, radius: radius, margin: margin, rings: rings, defaultWidth: 20)
view.addSubview(progressRingView)
实例化ConcentricProgressRingView
实例后,使用setProgress
.
ring.arcs[1].setProgress(0.5, duration: 2)
在引擎盖下,这只是使用CABasicAnimation
并设置了一些参数,使其看起来“正确”。我知道您没有使用 Swift,但如果您需要特定的指针,只需查看源代码以了解我是如何解决它的。希望这可以帮助!