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

星星評(píng)價(jià).gif
功能簡(jiǎn)介
1.支持星星數(shù)量自定義, 不局限于5個(gè)10個(gè)這種固定模式, 支持點(diǎn)擊手勢(shì)和拖動(dòng)手勢(shì),.
2.支持任意分值, 也就是說(shuō)你不必選擇1分,3分,5.5分, 8.5分, 完全可以顯示5.68分這種分值, 星星的"高亮部分"自動(dòng)根據(jù)分值顯示.
3.支持自定義星星圖片, 只需要傳入選中和未選中兩種樣式, "部分高亮"自動(dòng)處理.
4.支持設(shè)置最低分, 支持分階(如用戶操作結(jié)果為3.4分, 如分階為1, 則最終分為3分, 如分階為0.5 則最終分為3.5).
5.匹配第三方屏幕適配組件, 想放到哪里, 就放到哪.
6.支持cocoapods集成, 請(qǐng)使用: pod 'ZZTools'
使用方法:
//1.第一行星星的使用, 具體請(qǐng)查看點(diǎn)擊Github傳送門查看demo, 另外還有垂直, 水平, 浮動(dòng)瀑布流功能哦.
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(@"用戶實(shí)際選擇分 === %.2f, 最終分 === %.2f", userGrade, finalGrade);
}];
self.starView.sublevel = 0.5;//默認(rèn)值, 可以不寫, 用戶可選分值范圍是0.5的倍數(shù).(建議在設(shè)置分值之前確定此值)
self.starView.grade = 1.5;//設(shè)置分值, 可以不寫, 默認(rèn)顯示0分.
self.starView.miniGrade = 0;//默認(rèn)值, 可以不寫 ,用戶可以設(shè)置的最低分值.
[self.view addSubview:self.starView];
self.starView.frame = CGRectMake(50, 150, self.starView.bounds.size.width, self.starView.bounds.size.height);
2.ZZStarView頭文件功能簡(jiǎn)介:
/**用戶修改了分值的回調(diào)(傳入后, 用戶也將可以修改分值, 可以通過(guò)userInteractionEnabledv關(guān)閉)*/
@property (nonatomic , copy) ZZStarViewCallBack callBack;
/**分階, 默認(rèn)為0.5, 即為最終分永遠(yuǎn)是0.5的倍數(shù), 如果為1則永遠(yuǎn)為1的倍數(shù)(即為整數(shù)), 取值在0.01~1.0之間, 若需自定義, 建議在設(shè)置grade(分值)之前確定此值*/
@property (nonatomic , assign) CGFloat sublevel;
/**當(dāng)前分值, 每個(gè)星一分, 支持小數(shù)點(diǎn), 進(jìn)度自適應(yīng)*/
@property (nonatomic , assign) CGFloat grade;
/**最低分值, 用戶無(wú)法設(shè)置低于此值的分支, 默認(rèn)為0.5*/
@property (nonatomic , assign) CGFloat miniGrade;
/**
* image: 未選中狀態(tài)的圖片
* selectImage: 選中狀態(tài)的圖片
* starWidth: 星星的寬度
* starHeight: 星星的高度
* starMargin: 每?jī)蓚€(gè)星星之間的間距
* starCount: 需要幾個(gè)星星
* callBack: 如果傳入nil, 則用戶不可以修改分值
* 注: 此view寬高自適應(yīng), 設(shè)置frame時(shí), 只需考慮q起點(diǎn)xy坐標(biāo).
*/
- (instancetype)initWithImage:(UIImage *)image selectImage:(UIImage *)selectImage starWidth:(CGFloat)starWidth starHeight:(CGFloat)starHeight starMargin:(CGFloat)starMargin starCount:(int)starCount callBack:(nullable ZZStarViewCallBack)callBack;
關(guān)于我們:
好用的話, 記得留下你的小星星哦.
歡迎吐槽, qq郵箱: 1156858877@qq.com