Хотите отобразить и реализовать рейтинг, как в приложении для iPod

Я хочу отображать и реализовывать рейтинг так, как это делает Apple в приложении для iPod. Может ли кто-нибудь сказать мне, как это делается. Код, который я хочу реализовать, должен быть написан в viewController.

Заранее спасибо.

Предоставление кода было бы полезно. Я рисую изображение в файле реализации (.m) моего подкласса UIViewController внутри метода touchesBegan:. Ошибки во время выполнения следующие:

<Error>: CGContextSaveGState: invalid context
<Error>: CGContextSetBlendMode: invalid context
<Error>: CGContextSetAlpha: invalid context
<Error>: CGContextTranslateCTM: invalid context
<Error>: CGContextScaleCTM: invalid context
<Error>: CGContextDrawImage: invalid context
<Error>: CGContextRestoreGState: invalid context
<Error>: CGContextClipToRect: invalid context

person Nishit    schedule 04.02.2010    source источник


Ответы (2)


5 кнопок с собственными изображениями для закрашенных и незакрашенных звезд. Вам понадобится некоторая пользовательская логика для изменения изображений при каждом щелчке. Я бы рекомендовал установить разные теги для каждой кнопки.

person Rob Fonseca-Ensor    schedule 04.02.2010
comment
Хотя это будет работать и является вполне жизнеспособным решением, на самом деле оно не эмулирует реализацию Apple из приложения iPod, о котором спрашивал вопрошающий. Этот метод создаст другой пользовательский опыт, чем реализация единого представления, которое отслеживает места касания. - person Jasarien; 04.02.2010
comment
см. отредактированную часть вопроса. Спасибо Rob Fonseca-Ensor и Jasarien за ответы. Пожалуйста, предоставьте мне решение - person Nishit; 04.02.2010

Я бы подошел к этому так, чтобы реагировать на прикосновения в целевом представлении и смотреть на место касания в представлении.

Я бы разделил вид на разделы, равные количеству «звезд» через равные промежутки времени, и при обнаружении прикосновения в одном из этих разделов установил значение рейтинга на номер раздела.

Eg.

 _ _ _ _ _ 
|_|_|_|_|_|
     ^ touch here = 3

Затем вы можете реализовать некоторый рисунок, соответствующий выбранному рейтингу, чтобы нарисовать количество выбранных «звезд».

person Jasarien    schedule 04.02.2010
comment
У меня нет никакого кода, чтобы предоставить извините, мой ответ был, как я бы подошел к этому концептуально. Ошибки сообщают вам, что вы пытаетесь использовать недопустимый контекст. Вы должны рисовать в текущем контексте (используя UIGraphicsGetCurrentContext()) или другом контексте, который вы настроили сами и знаете, что он действителен. - person Jasarien; 04.02.2010