星级评分StarScoreDemo

今天做了一个点击/拖动小星星评分功能的控件,效果如下:

2019-07-19 19.07.31.gif

支持点击和滑动

原理简介:
一.使用了UIControl控件,点击和滑动事件的监听不用自己搞,自带buff.页面设置五颗星星,就给UIControl添加5个Button.每个button的tag从0开始...

Snip20190719_17.png

二.在以上点击或者拖动相应的回调事件中书写我们的业务逻辑.

 比如我们点击到3.4颗星星的进度,我们的代码执行了以下三件事:
 1.得到当前进度的点坐标,遍历五个button,找到当前点所在的button,就是tag=2的button.获取当前点的数值count.   count = button.tag+(当前点的x坐标-button.x)/button.width. 从而得到count = 2.4
  2.遍历所有button,设置其图片为灰色星星的图片
  3.遍历<=count的button 设置其图标为黄色星星的图片
  4.对当前button的图片单独处理,count取小数0.4,利用图片截取方法截取黄色星星宽度*0.4的图片,然后将其在灰色星星图片上进行合成,这样就能得到一张坐标40%的是黄色星星,右边60%是灰色星星的图片.然后返回给当前button,至此大工告成.

希望初学者能得到启示,学会自己封装控件。完整demo的github地址:星级评分demo请点击此链接进行下载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容