Star-Half图像未显示在Custom RatingView IOS中

时间:2015-01-20 11:36:43

标签: ios

我正在使用本教程http://www.raywenderlich.com/1768/uiview-tutorial-for-ios-how-to-make-a-custom-uiview-in-ios-5-a-5-star-rating-view进行自定义评级栏。但是我无法给出一半的评分。当用户触摸imageview时,我试图显示半星。请建议我

1 个答案:

答案 0 :(得分:0)

最后我解决了半星问题。

if (!self.editable) return;

//The rating starts out as 0 and then builds from there.
CGFloat newRating = 0;
//loop through the image collection backwards so if it exits the loop it will have identified the MAX
for(int i = self.imageViews.count - 1; i >= 0; i--) {
    UIImageView *imageView = [self.imageViews objectAtIndex:i];

    CGFloat distance = touchLocation.x - imageView.frame.origin.x;

    CGFloat frameWidth = imageView.frame.size.width;

    if (distance <= 0){
        //this means that the click was to the left of the frame
       continue;
    }
    if (distance /frameWidth >.75) {
        //If this ratio is >.75 then you are to the right 3/4 of the image or past th image
        newRating = i + 1;
        break;
    } else {
        //you didn't drop out or mark the entire star, so mark it half.
        newRating = i + 0.5;
        break;
    }
}

self.rating = newRating;