ios - 如何实现像Yahoo的APP News Digest这样的倒计时功能-LMLPHP
ios - 如何实现像Yahoo的APP News Digest这样的倒计时功能-LMLPHP

我可以使用CAShapeLayerUIBezierPath画圆,也可以使用CAShapeLayer.strokeEnd这个属性来控制进度。但是路径和时间的快速滚动,我不知道如何实现。

现在我认为方法是计算两者之间的时间差,然后使用该时间差进行循环。

例如,两者之间的时间差为1000秒,是否应该将strokeEnd和Label的中间设置为1000个循环?还是实现了良好的效果?

提前致谢!

最佳答案

注意: StrokeEnd接受0 - 1 之间的值

说吧
在您的案例中,您可以看到圆圈代表了显示新Feed所需的剩余时间。假设 3PM。

因此下午3点将是您的nextFeedTime = 3PM
您在 12PM 获得了此供稿,因此在feedTime = 12PM处获得了此供稿。

所以现在您将拥有feedTime=12PM - nextFeedTime=3PM的开始和结束值

因此feedTime0strokeEnd,而nextFeedTime是StrokeEnd的1

当您打开应用程序时,您会得到currentTime,它最初是用feedTime初始化的,后来它会一直被当前时间戳替换。

假设currentTime1 PM

现在我们可以计算动画strockEnd属性的比率
strokeEnd = currentTime / nextFeedTime
并相应地为strokeEnd设置动画。希望这对您有帮助!

10-07 14:33