您的位置:首页 > 其它

自定义时间选择器的实现(非picker)

2016-03-21 13:58 267 查看
上手的第一个比较完整的项目,其中有个时间选择器,想了阵子,尝试了不少方法,最后都放弃了,还是使用的一个相对笨的办法,我只能告慰自己,功能至少完全实现了。

关于时间选择器的滚轮,我选择用scrollview实现,务必关闭pageenable,我们通过使用scrollview的代理来实现必要时的pageenable功能。

scrollview中有两个代理方式需要使用,一个是bool是否有减速都会触发,一个则是滑动结束触发,第一个方法是无论是否有长滑动(手指离开后依然希望继续滑动)与否都会触发,后者是长滑动后触发,我们使用第一个代理进行bool判断,否,触发a事件,是,结束。

第二个方法我们同样触发a事件,通过这些处理,我们就保证了结束滑动无论是否是长滑动都会触发a事件。

关于之前提到的a事件,我们在其中实现最后的校准实现,避免结果停在两个数值之间,我自己是使用偏移量来实现的,当位移超过单位字的半个高度就将结果定位在下一个结果,否则着不,通过自定义动画实现setcontentoffset,将他退回或前进到合适位置。

关于次我有个问题不是完美解决,当同时滚动两个scrollview时,代理方法只能处理其一,导致有一个到达合适位置,另一个则无法到达。我退而求其次强制只能同时使用其一来刻意规避这一缺陷。

第一次文章,见笑了,十分感谢赵红情女士,orz。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: