【发布时间】:2017-07-09 15:03:01
【问题描述】:
我有一个表格视图,每次我创建一个新行时,都会随机创建一个不同的颜色来改变它的背景。使用此功能:
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
}
}
colors 是我的颜色数组,颜色是我要比较的颜色。但每次调用该函数时,它都会返回 true。
我能做什么?
【问题讨论】:
-
您总是在与颜色数组的第一个元素进行比较 - 您需要遍历所有颜色以查看是否有重复。
-
所以你有一个包含 10 个 UIColor 元素的 [Colors],当你创建一个随机颜色时,你需要检查随机生成的颜色数组是否与原始颜色数组具有相同的元素,如果它具有相同您需要省略该数组元素并创建一个新元素
标签: arrays swift object compare uicolor