现今,五星打分已成为目前主流的评分方式。在各个app上也十分常见。接下来是对评分控件的详解。

思路:首先我们想到用一个yellowView里装5个黄色星星的imageView,再用另一个grayView承载灰色的星星。 将yellowView盖在grayView上就能展示五星的样式, 然后通过控制yellowView的宽度来显示0-5星的样式。然后通过手势的坐标,去计算出手打的分数。
5颗星星我们要创建5个imageView,那如果需求是6个7个呢。 虽然也是有办法解决,但这里要介绍更好的方法:
+ (UIColor*)colorWithPatternImage:(UIImage*)image;
使用这个方法,我们可以将图片当做背景颜色填充在视图中。但是图片的宽高可能并不适于我们的view的大小,就会出现下面的情况:

这时候,我们我们可以计算星星视图的宽高比,将yellowView缩放到我们想要的比例即可。
附上代码:https://github.com/cocofine/personalCode.git
网友评论