在项目里需要实现一个圆形的 slider 来设置倒计时间。用手滑动一圈就相当于设置了一个小时倒计时,两圈就是两小时。我找到了一个叫 EFCircularSlider 的开源库,圆形滑动样样都有了。关键就在于如何判断用户滑满一圈。
可以使用 currentValue 来得到当前值,如果简单的判断 currentValue 是否等于最大值 60 来判断是否满一圈会有问题,如果从 0 附近逆时针转回来 currentValue 的值又会再次马上从 0 变成 60。
另外,如果用户滑动的非常快,currentValue 的值可能从 49.0000 直接跳到 8.0000 了,直接跳过 60 这个节点值。
如果设置一个区间,满足这个区间就判定为满一圈,那 currentValue 在速度比较慢的时候一到达左端点就满一圈了。
要是 currentValue 达到 60 可以不清零就好了。
于是开始看源码怎么实现了,看懂了大概,改了改没达到目的 😄😄
遇到这种需求,你们怎么做的呢?
可以使用 currentValue 来得到当前值,如果简单的判断 currentValue 是否等于最大值 60 来判断是否满一圈会有问题,如果从 0 附近逆时针转回来 currentValue 的值又会再次马上从 0 变成 60。
另外,如果用户滑动的非常快,currentValue 的值可能从 49.0000 直接跳到 8.0000 了,直接跳过 60 这个节点值。
如果设置一个区间,满足这个区间就判定为满一圈,那 currentValue 在速度比较慢的时候一到达左端点就满一圈了。
要是 currentValue 达到 60 可以不清零就好了。
于是开始看源码怎么实现了,看懂了大概,改了改没达到目的 😄😄
遇到这种需求,你们怎么做的呢?