У меня есть 6 базовых цветов, которые идут по порядку для каждой ячейки, созданной в следующем порядке:

• желтый
• темно-желтый
• красный
• темно-красный
• лайм
• темно-салатовый

У меня есть массив этих 6 цветов в указанном порядке, чтобы использовать его в качестве цвета фона каждой ячейки, но если я хочу добавить новую ячейку и сделать ее 7 ячеек, мне нужно повторно добавить первый цвет, чтобы массив выглядел так: < br />
• желтый
• темно-желтый
• красный
• темно-красный
• лайм
• темно-салатовый
• желтый

Есть ли способ повторить шесть цветов массива после создания шестой ячейки?

Спасибо за помощь!

0
Jose Zamudio 15 Сен 2014 в 00:50
Есть много способов. Покажи код. Затем мы найдем способ, который подходит вам по коду. Если у вас нет кода, сделайте его.
 – 
dasdom
15 Сен 2014 в 00:59

2 ответа

Лучший ответ

Вы можете использовать по модулю:

NSArray *colors = @[ Red, Green, Blue ];

colors[0 % colors.count]; // Red
colors[1 % colors.count]; // Green
colors[2 % colors.count]; // Blue
colors[3 % colors.count]; // Red
colors[4 % colors.count]; // Green
// and so on...
4
Alfonso 15 Сен 2014 в 00:59

Вы можете использовать оператор % (модуль), что-то вроде этого подойдет

UIColor *currentColor = colorsArray[row % colorsArray.count];

Где row - это целое число, представляющее текущий номер строки, а colorsArray - ваш массив UIColor

Вы можете узнать больше об операторе модуля здесь http://www.cprogramming.com/tutorial/modulus.html

1
Daniele 15 Сен 2014 в 00:59
Спасибо! это код, который я использовал, чтобы заставить его работать: var currentColor:UIColor = Constants.cellColorsArray().objectAtIndex(indexPath.row % 6) as UIColor
 – 
Jose Zamudio
15 Сен 2014 в 01:09