iOS星星評(píng)價(jià), 支持半星, 小數(shù), 自定義星星樣式, 星星個(gè)數(shù)

引言:

星星評(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 翻譯自“Collection View Programming Guide for iOS” 0 關(guān)于iOS集合視...
    lakerszhy閱讀 4,071評(píng)論 1 22
  • 8月的第一周匆匆而過(guò),在天使班1.0畢業(yè)后2.0開始前,基本處于放假的狀態(tài),49天的好習(xí)慣消耗殆盡,從簡(jiǎn)單的復(fù)盤開...
    神仙洋洋閱讀 175評(píng)論 0 0
  • 4.1.7 始終處于被拍攝對(duì)象眼睛的高度 不管你是設(shè)計(jì)還是裁剪照片,請(qǐng)仔細(xì)觀察那些照片上的物體,并且假設(shè)它們長(zhǎng)著一...
    Mu_Xin閱讀 342評(píng)論 0 0
  • 好希望多在家停留一些日子,北方的家天天陽(yáng)光明媚,氣溫也一天天溫暖起來(lái),和自己差不多的伙伴,能天天聚在一起,插花,聊...
    在聽Yellow閱讀 363評(píng)論 2 9
  • 我的寫作總結(jié)又拖延到周末了。我現(xiàn)在無(wú)法評(píng)判自己的寫作水平是否提高,我只想問(wèn)問(wèn)自己:“今日的打卡目標(biāo)可以完成嗎?” ...
    pennyli8765閱讀 415評(píng)論 0 0

友情鏈接更多精彩內(nèi)容