У меня есть представление таблицы, что каждый раз, когда я создаю новую строку, для изменения ее фона создается случайный случай. С помощью этой функции:Как сравнить случайный UIColor с цветами в массиве цветов в swift?
func getRandomColor() -> UIColor{
let red:CGFloat = CGFloat(drand48())
let green:CGFloat = CGFloat(drand48())
let blue:CGFloat = CGFloat(drand48())
return UIColor(red:red, green: green, blue: blue, alpha: 1.0)
}
Я хранить цвет в массиве, делая это, я хочу, чтобы избежать равных цветов в моем представлении таблицы. Массив заполняются, когда представление таблицы создаются в табличном cellForRow, как это:
colors.append(category.color as! UIColor)
категория мой объект.
Проблема в том, когда я закрываю приложение и запускаю его снова. Постоянно сохраняются и начинают беспорядочно создавать одни и те же цвета. Поэтому я пытаюсь сравнить цвета, чтобы создавать цвета, пока они не станут новым цветом. Используя эту функцию:
func validateColor(color: UIColor) -> Bool {
let primeiraCor = colors.first! as UIColor
if primeiraCor == color {
return false
} else {
return true
}
}
Цвет - это мой массив цветов и цвет цвета, который я хочу сравнить. Но каждый раз, когда функция называется, она возвращает true.
Что я могу сделать?
Вы всегда сравниваете с первым элементом вашего цветового массива - вам нужно будет перебирать все цвета, чтобы увидеть, есть ли у вас дубликат. –
Итак, у вас есть [Цвета] с 10 элементами UIColor, и когда вы создаете случайный цвет, вам нужно проверить, имеет ли случайный массив цветов тот же самый элемент, что и исходный массив цветов. Если он имеет одинаковые элементы, вам нужно опустить этот массив элементы и создать новый элемент – Koushik