iOS星星评价, 支持半星, 小数, 自定义星星样式, 星星个数

引言:

星星评价和选择是电商平台项目一些付费功能的用户反馈的常用功能之一, 下面我们来介绍一个强大的星星评价组件ZZStarView(包含在ZZTools中, Github传送门).

效果展示
星星评价.gif
功能简介

1.支持星星数量自定义, 不局限于5个10个这种固定模式, 支持点击手势和拖动手势,.
2.支持任意分值, 也就是说你不必选择1分,3分,5.5分, 8.5分, 完全可以显示5.68分这种分值, 星星的"高亮部分"自动根据分值显示.
3.支持自定义星星图片, 只需要传入选中和未选中两种样式, "部分高亮"自动处理.
4.支持设置最低分, 支持分阶(如用户操作结果为3.4分, 如分阶为1, 则最终分为3分, 如分阶为0.5 则最终分为3.5).
5.匹配第三方屏幕适配组件, 想放到哪里, 就放到哪.
6.支持cocoapods集成, 请使用: pod 'ZZTools'

使用方法:

//1.第一行星星的使用, 具体请查看点击Github传送门查看demo, 另外还有垂直, 水平, 浮动瀑布流功能哦.

    self.starView = [[ZZStarView alloc] initWithImage:[UIImage imageNamed:@"star"] selectImage:[UIImage imageNamed:@"didStar"] starWidth:20 starHeight:20 starMargin:5 starCount:5 callBack:^(CGFloat userGrade, CGFloat finalGrade) {
        NSLog(@"用户实际选择分 === %.2f, 最终分 === %.2f", userGrade, finalGrade);
    }];
    self.starView.sublevel = 0.5;//默认值, 可以不写, 用户可选分值范围是0.5的倍数.(建议在设置分值之前确定此值)
    self.starView.grade = 1.5;//设置分值, 可以不写, 默认显示0分.
    self.starView.miniGrade = 0;//默认值, 可以不写 ,用户可以设置的最低分值.
    [self.view addSubview:self.starView];
    self.starView.frame = CGRectMake(50, 150, self.starView.bounds.size.width, self.starView.bounds.size.height);

2.ZZStarView头文件功能简介:

/**用户修改了分值的回调(传入后, 用户也将可以修改分值, 可以通过userInteractionEnabledv关闭)*/
@property (nonatomic ,   copy) ZZStarViewCallBack   callBack;

/**分阶, 默认为0.5, 即为最终分永远是0.5的倍数, 如果为1则永远为1的倍数(即为整数), 取值在0.01~1.0之间, 若需自定义, 建议在设置grade(分值)之前确定此值*/
@property (nonatomic , assign) CGFloat              sublevel;

/**当前分值, 每个星一分, 支持小数点, 进度自适应*/
@property (nonatomic , assign) CGFloat              grade;

/**最低分值, 用户无法设置低于此值的分支, 默认为0.5*/
@property (nonatomic , assign) CGFloat              miniGrade;

/**
 * image:           未选中状态的图片
 * selectImage:     选中状态的图片
 * starWidth:       星星的宽度
 * starHeight:      星星的高度
 * starMargin:      每两个星星之间的间距
 * starCount:       需要几个星星
 * callBack:        如果传入nil, 则用户不可以修改分值
 * 注:               此view宽高自适应, 设置frame时, 只需考虑q起点xy坐标.
 */
- (instancetype)initWithImage:(UIImage *)image selectImage:(UIImage *)selectImage starWidth:(CGFloat)starWidth starHeight:(CGFloat)starHeight starMargin:(CGFloat)starMargin starCount:(int)starCount callBack:(nullable ZZStarViewCallBack)callBack;

关于我们:

好用的话, 记得留下你的小星星哦.
欢迎吐槽, qq邮箱: 1156858877@qq.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,931评论 1 22
  • 8月的第一周匆匆而过,在天使班1.0毕业后2.0开始前,基本处于放假的状态,49天的好习惯消耗殆尽,从简单的复盘开...
    神仙洋洋阅读 158评论 0 0
  • 4.1.7 始终处于被拍摄对象眼睛的高度 不管你是设计还是裁剪照片,请仔细观察那些照片上的物体,并且假设它们长着一...
    Mu_Xin阅读 316评论 0 0
  • 好希望多在家停留一些日子,北方的家天天阳光明媚,气温也一天天温暖起来,和自己差不多的伙伴,能天天聚在一起,插花,聊...
    在听Yellow阅读 345评论 2 9
  • 我的写作总结又拖延到周末了。我现在无法评判自己的写作水平是否提高,我只想问问自己:“今日的打卡目标可以完成吗?” ...
    pennyli8765阅读 368评论 0 0