hsousa / HCSStarRatingView

Simple star rating view for iOS written in Objective-C
MIT License
1.28k stars 194 forks source link

allow stars to be unselected #42

Closed brightredchilli closed 7 years ago

brightredchilli commented 8 years ago

This is not meant to be a final PR, but a point of discussion. This code works and allows stars to be unselected. Maybe the only point of contention is the setting of '0' to be the 'unselected' value. I figure we do this since even the 'minimumValue' takes a max of 0 and _minimumValue. Let me know your thoughts. Thanks for the library!

hsousa commented 7 years ago

Hi @brightredchilli! Sorry for only answering now, but I'm only now starting to have a bit of time to look at this pet project again!

I agree that unselection should be 0, but I don't agree with how it's being handled. I'd much rather have a behaviour similar to iTunes on macOS: when you drag outside of the view, to the left, and then let go it assumes you want to unselect (which is where we would set the value to 0 and send the notification).

What do you think?

brightredchilli commented 7 years ago

hi @hsousa, that definitely makes sense as a way of unselecting, though I think that that should be done in addition to, and not instead of single tap to unselect.

hsousa commented 7 years ago

I'm sorry, but I don't believe a single tap is an intuitive way to unselect a rating, especially when there seems to already be a OS-level standard way of doing it.

Do you know any example of unselecting like you're suggesting?

brightredchilli commented 7 years ago

Hi hugo, don't apologize! I have gotten plenty of mileage out of this project already, and many thanks for that. I am going off filtering UX as found in apps like Yelp. Honestly I find that most of the time I tap the rating by accident, and I'm really annoyed when there is no easy way to undo it - but this may just be personal preference.

I could explore potentially having this one tap to unselect as a feature that can be turned on and off with a boolean setting if you think that might be worthwhile. Otherwise, feel free to close the pr.

hsousa commented 7 years ago

Thank you, I'm happy to know this control helps people everywhere! 😍

I really don't see tapping to unselect as a standard way of doing this, but I strongly believe that a way to unselect should be implemented, preferably in a way known to the user, like what iTunes does now.

If you don't want or have time to implement that now it's perfectly fine, I'll just create a new issue so I can implement it in a future version! 👍

brightredchilli commented 7 years ago

Awesome, thanks!