Я бы пошел проще. Подкласс UIControl и реализует методы touchesBegan: touchesMoved: и touchesEnded:. Вы можете определить, какую звезду пользователь нажимал / перетаскивал / отпускал с помощью координаты X касания. Например:
CGFloat relativeTouchLocation = [event locationInView:self] / self.bounds.size.width;
Тогда вам решать, какие звезды освещены, основываясь на этом значении. Да, и отправить событие UIControlEventValueChanged.
Очевидно, что вы также переопределяете drawRect: рисовать звезды на виде.
Хотя приведенное выше решение Джейсона сработает, ваш пользователь не сможет скользить пальцем по элементу управления, чтобы точно настроить свой рейтинг. Это также даст вам возможность сделать пол-звезды или другие точные настройки.