iOS8的星级评分控制

时间:2014-12-08 10:31:08

标签: ios objective-c iphone ipad uiview

在我的应用程序中,我必须实现星级控制,其中我必须保持浮动值意味着全选图像,半选择图像也是。

我看过这个http://www.raywenderlich.com/1768/uiview-tutorial-for-ios-how-to-make-a-custom-uiview-in-ios-5-a-5-star-rating-view链接

但是我无法修改半选图像的代码。

任何人都可以帮我解决如何进行控制的问题。

1 个答案:

答案 0 :(得分:1)

如果按如下方式修改“handleTouchAtLocation”,它将起作用。

  (void)handleTouchAtLocation:(CGPoint)touchLocation {
        if (!self.editable) return;

        float newRating = 0;
        for(int i = self.imageViews.count - 1; i >= 0; i--) {
            UIImageView *imageView = [self.imageViews objectAtIndex:i];
            CGFloat currentLocationX = touchLocation.x;
            if (currentLocationX > imageView.frame.origin.x) {
                if (touchLocation.x > imageView.frame.origin.x +imageView.frame.size.width) {
                    newRating = i+1;
                }
                else{
                    newRating = i+0.5;
                }
                break;
            }
        }

        self.rating = newRating;
    }