星星评价

引言:

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

功能简介

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'

效果展示(模拟器拖动效果有点卡, 真机完美拖拽动画, 十分粘手)
2897360-51e053660dbbf02a.png
效果展示

1.第一行, 分阶为0.5, 所以你可以看到选择了半颗星, 总分5.0分,当前分值为4.5.
2.第二行, 分阶为1.0, 所以你看到的全部都是整颗星, 总分10分, 当前7分.
3.第三行, 分阶为0.0.1, 所以你可以看到, 第三个星星只选中了一点.

使用方法:

//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.5;//默认值, 可以不写 ,用户可以设置的最低分值.
    [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邮箱: [email protected]

猜你喜欢

转载自blog.csdn.net/weixin_34413065/article/details/86978020
今日推荐