首页 > 解决方案 > 为 forEach 循环中的每个项目生成随机背景颜色

问题描述

我想做的是看看它是否有可能在每个循环中我可以为每个项目分配一个随机背景颜色。我在下面尝试了一些东西,但没有编译。我知道有一种方法可以通过在 for each 之外设置一个变量并作为 uicolor 的一部分增加,但我想看看是否有一种方法可以在不创建变量的情况下做到这一点。

   var frontBox = UIButton()
var backBox = UIButton()


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    [frontBox,backBox,slider].forEach{
        $0.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview($0)
        $0.backgroundColor = ar4random().uicolor
    }
    

}

标签: swiftforeacharc4random

解决方案


斯威夫特不再使用ar4random- 要获得一个随机数,你使用.random(in: 0...1) 或类似的 .

此外,$0.backgroundColor接受一个UIColor,而不是一个数字。您可能正在寻找这样的东西:

$0.backgroundColor = UIColor(
    red: .random(in: 0...1),
    green: .random(in: 0...1),
    blue: .random(in: 0...1),
    alpha: 1
)

这由UIColorfrom redgreenblue组件 组成,它们都是随机数 from01


推荐阅读