我可以使用CAShapeLayer
和UIBezierPath
绘制圆圈,我也可以使用此属性CAShapeLayer.strokeEnd
来控制进度。但是路径和时间的快速滚动,我不知道如何实现。
现在我认为方法是计算两者之间的时差,然后用时差来循环。
例如,两者之间的时差是1000秒,我是否必须设置strokeEnd和Label 1000循环的中间?或者实现良好的结果呢?
提前感谢!
答案 0 :(得分:2)
注意: StrokeEnd接受
之间的值0 - 1
让我们说, 在您的案例中查看圆圈表示显示新Feed所需的剩余时间。让我们说 3PM。
所以下午3点将是您的nextFeedTime = 3PM
,
你在 12PM 所以feedTime = 12PM
得到了这个Feed。
现在您将拥有feedTime=12PM - nextFeedTime=3PM
feedTime
0
strokeEnd
为nextFeedTime
,而{1}} {1}}为{1}}。
当您打开应用程序时,您将获得1
,该currentTime
最初使用feedTime
进行初始化,之后将使用当前时间戳一直更换。
假设currentTime
为1 PM
。
现在我们可以计算动画strockEnd
属性
strokeEnd = currentTime / nextFeedTime
并相应地设置动画strokeEnd。希望这会对你有所帮助!