这一次跟大家分享的是一个非常轻量的滚轮选择控件,只有1个文件,一共400多行代码,源码已经上传到github:
https://github.com/huzenan/EasyPickerView
我们知道如果想在项目里,尤其是大的项目里使用别人造好的“轮子”,假如说我只想用一个好看的滚轮选择控件,而必须引入好几个文件甚至十几个文件,那真的是很不情愿的。这个时候,非常轻量级的EasyPickerView就能解决问题了,只要一个文件,代码也很少,心情好了还能做些修改以适应自己的需求,还不是美滋滋的。
先看看效果
用法
效果还是很棒棒的,用法也很简单,首先是布局文件:
支持以下几个属性:
- epvTextSize:字符的大小
- epvTextColor:字符的颜色
- epvTextPadding:字符的间距
- epvTextMaxScale:中间字符缩放的最大值
- epvTextMinAlpha:两端字符最小alpha值
- epvRecycleMode:是否为循环模式
- epvMaxShowNum:显示多少个字符
看完会发现,如果最后一个属性epvMaxShowNum设置了偶数会怎么样呢,效果如下:
设置为偶数的时候,字符上下各显示一半。
然后就是在使用时设置一下数据集,再设置一下监听了:
原理
整个View的原理,是在触摸过程中改变一些属性值,然后重绘整个View来达到滚动的效果。过程中用于控制滚动效果的属性值包括:
- curIndex:当前选中项
- offsetIndex:本次滚动中偏移的项
- offsetY:本次滑动的Y坐标偏移量
- oldOffsetY:在fling之前的offsetY
后面会解释这几个属性值的作用。