Я делаю программу, в которой есть два цвета. Первый случайный, в то время как второй - другой оттенок первого. Разница между оттенками определяется переменной colorDiff.Создать различные цвета
func generateColors() -> (main: UIColor, diff: UIColor) {
let colorDiff = findColorDiff()
let redMain: CGFloat = CGFloat(arc4random_uniform(255))/255.0
let greenMain: CGFloat = CGFloat(arc4random_uniform(255))/255.0
let blueMain: CGFloat = CGFloat(arc4random_uniform(255))/255.0
let main: UIColor = UIColor(red: redMain, green: greenMain, blue: blueMain, alpha: 0.8)
if (redMain + colorDiff <= 255 && blueMain + colorDiff <= 255 && greenMain + colorDiff <= 255) {
let redDiff: CGFloat = redMain + colorDiff
let blueDiff: CGFloat = blueMain + colorDiff
let greenDiff: CGFloat = greenMain + colorDiff
let diff: UIColor = UIColor(red: redDiff, green: greenDiff, blue: blueDiff, alpha: 0.8)
return diff
} else {
let redDiff: CGFloat = redMain - colorDiff
let blueDiff: CGFloat = blueMain - colorDiff
let greenDiff: CGFloat = greenMain - colorDiff
let diff: UIColor = UIColor(red: redDiff, green: greenDiff, blue: blueDiff, alpha: 0.8)
return diff
}
return (main, diff)
}
Основная проблема заключается в том, что я не могу возвращать значения внутри «если» цикла, так что я нужен способ, чтобы иметь возможность вернуть «диф» UIColor и все еще быть в состоянии делать то, что внутри «, если " заявление. Заранее большое спасибо! :)
Пожалуйста, отредактируйте ваш вопрос на каком-то примере, чтобы лучше понять, что вы спрашиваете – EnriMR