引言:
星星評價和選擇是電商平臺項目一些付費功能的用戶反饋的常用功能之一, 下面我們來介紹一個強大的星星評價組件ZZStarView(包含在ZZTools中, Github傳送門).
效果展示

星星評價.gif
功能簡介
1.支持星星數(shù)量自定義, 不局限于5個10個這種固定模式, 支持點擊手勢和拖動手勢,.
2.支持任意分值, 也就是說你不必選擇1分,3分,5.5分, 8.5分, 完全可以顯示5.68分這種分值, 星星的"高亮部分"自動根據(jù)分值顯示.
3.支持自定義星星圖片, 只需要傳入選中和未選中兩種樣式, "部分高亮"自動處理.
4.支持設置最低分, 支持分階(如用戶操作結(jié)果為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的倍數(shù).(建議在設置分值之前確定此值)
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頭文件功能簡介:
/**用戶修改了分值的回調(diào)(傳入后, 用戶也將可以修改分值, 可以通過userInteractionEnabledv關閉)*/
@property (nonatomic , copy) ZZStarViewCallBack callBack;
/**分階, 默認為0.5, 即為最終分永遠是0.5的倍數(shù), 如果為1則永遠為1的倍數(shù)(即為整數(shù)), 取值在0.01~1.0之間, 若需自定義, 建議在設置grade(分值)之前確定此值*/
@property (nonatomic , assign) CGFloat sublevel;
/**當前分值, 每個星一分, 支持小數(shù)點, 進度自適應*/
@property (nonatomic , assign) CGFloat grade;
/**最低分值, 用戶無法設置低于此值的分支, 默認為0.5*/
@property (nonatomic , assign) CGFloat miniGrade;
/**
* image: 未選中狀態(tài)的圖片
* selectImage: 選中狀態(tài)的圖片
* 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