Anyone know whether there is a 5-star rating component on iPhone?

前端 未结 8 898
南方客
南方客 2020-12-05 12:08

In Google groups and some other web sites, there is a 5-star rating component which is pretty neat, such as in this url: http://groups.google.com/group/Google-Picasa-Data-AP

相关标签:
8条回答
  • 2020-12-05 12:10

    I'd go simpler. Subclass UIControl and implement the touchesBegan: touchesMoved: and touchesEnded: methods. You can determine which star the user pressed/dragged/let up on with the X coordinate of the touch. For example:

    CGFloat relativeTouchLocation = [event locationInView:self] / self.bounds.size.width;
    

    Then it's just up to you to determine which stars are illuminated based on that value. Oh, and to send a UIControlEventValueChanged event.

    Obviously, you also override drawRect: to draw the stars in the view.

    Although Jason's solution above will work, your user won't be able to slide her finger across the control to fine-tune her rating. This would also give you the option of doing half-stars or other fine adjustments.

    0 讨论(0)
  • 2020-12-05 12:12

    UIView that allows you to build Rating components to provide the same kind of experience AppStore or Youtube applications on iPhone do.

    http://code.google.com/p/s7ratingview/

    0 讨论(0)
  • 2020-12-05 12:13

    Another selection of rating controls. These allow you to input the rating and not only view it. http://cocoacontrols.com/search?utf8=%E2%9C%93&q=rating&commit=Search

    0 讨论(0)
  • 2020-12-05 12:16

    I don't know of any free/available components off the top of my head, but if nobody offers one up and/or you can't find one you like, it should be fairly trivial to roll your own. In the simplest terms, you would only have to:

    1. Create/Find a star icon - one outline (unselected), one filled
    2. Create a UIButton and set the icons for the selected/unselected states
    3. Create a container view that held your x stars and when one was selected, the container could set the selected state on any button to the left of the touched button.

    Shouldn't take long at all to build...

    0 讨论(0)
  • 2020-12-05 12:20

    Here's another open source solution: https://github.com/dlinsin/DLStarRating

    0 讨论(0)
  • 2020-12-05 12:30

    As a general rule, if it's not in the Interface Builder, it's not available "for free," and you'll have to write it yourself.

    When it comes to the iPhone, Apple has also provided easily understood sample code that shows off every single available component and how to use them. If you don't see it in their code, you have to build it yourself.

    0 讨论(0)
提交回复
热议问题