iOS在做APP是會用到星星評分的一個視圖,在網上也能找到一些相關代碼,這裏使用 SWStarRateView
在 https://github.com/wangchaoIOS/StarRatingView上可以下載到。
但是再看了網上一些人寫的,基本是一個模子出來的,但是這個類少了一個屬性--是否可點擊
因爲有的地方需要評分功能,而有的地方只需要顯示評分的結果。所以在這裏寫出修改的地方。
在.h文件中加入一個屬性
@property (nonatomic, assign) BOOL allowTouch;//是否允許點擊,默認爲yes
在.m文件中,在手勢的地方判斷一下是否可以點擊來評分的allowTouch值就可以了
- (void)userTapRateView:(UITapGestureRecognizer *)gesture {
if (!_allowTouch) {
return;
}
CGPoint tapPoint = [gesture locationInView:self];
CGFloat offset = tapPoint.x;
CGFloat realStarScore = offset / (self.bounds.size.width / self.numberOfStars);
CGFloat starScore = self.allowIncompleteStar ? realStarScore : ceilf(realStarScore);
self.scorePercent = starScore / self.numberOfStars;
}
效果如下圖: