Добрый вечер!
Подскажите с чем нужно работать, чтобы создать рейтинг со звездочками
Звездочки рейтинга
если надо сделать рейтинг со звездочками, то можно самостоятельно запилить вьюху, в которой эти звездочки и выставлять.
[upd]
если надо чтоб прям пальцем возить по списку звезд и закрашивать их, то придется обработчик касаний делать. А элементы распознать на которые палец попал - не сложно.
да как говорит @Tau, можешь каждой звезде дать tag, сделать аутлет от каждой звезды и запихнуть их в массив звезд, пройтись и каждой звезде добавить распознаватель, а потом просто по tg определять что нажато
Парни наверное не точно задачу сформулировал. Нужно по 10 бальной шкале отобразить рейтинг в виде звезд. Пример: есть imdb 8,4 это нужно отобразить в раскраске 5 звезд как на рисунке выше.
ну делаешь вьюху, с ней нужные звезды. Тегами их можешь пометить. И пальцем как ведешь, смотришь на какой звезде зажат и соответственно все что ниже - отменяешь. С 1 звездой будет посложней, там надо будет определять точное положение если зашла за середину - 1 звезду метим, если нет - 0.
ну это если самому это рисовать.
Tau эт не совсем то, что мне нужно). Тогда так, нужно значение рейтинга 8,4 отобразить в виде 5 звезд. те. показать пользователю рейтинг 8,4 в виде звезд. Пользователь голосовать не будет. Он просто видит рейтинг 8,4 и раскрасчику звезд.
сделайте половинные звезды ну или реализуйте поведение, где буде происходить заливка в зависимости от значения от А до Б.
Чем вас не устраивает библиотека, которую дали выше?
Там есть как полная заливка, так и частичная.
Если вам не нужно делать с движением (т.е. нажали и провели), то это делается довольно просто, как уже писали выше.
Делаете stackView, ложите 5 звезд, даете им смой tag и устанавливаете TapGesture.
Тут способов реализации много.
Делаете stackView с 5 не закрашенными звездами.
После инициализации, высчитываете сколько звезд нужно закрасить.
let checkedStars = Int((rating + 1) / 2)
for i in 0...checkedStars {
if let image = stackView.subViews[i] as? UIImageView {
image.image = // ставите закрашенную звезду
//или просто перекрашиваете ей tintColor
}
}