gpt4 book ai didi

iOS/swift 4 : change color from a programmatically created label

转载 作者:行者123 更新时间:2023-11-28 15:08:50 24 4
gpt4 key购买 nike

我正在根据数组的计数创建多个标签。这很好用。但在一些用户交互发生后,我想更改标签颜色。

这是我的代码:

-数组看起来像这样:

var vids = [5: ["urltovideo1", "locationOne"], 7: ["urltovideo2", "locationTwo"]]

for label in vids[x][1] {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.backgroundColor = UIColor.gray
label.text = vids[index[j] as! Int]![2]
let z = CGFloat(j)
self.view.addSubview(label)
let horConstraint = NSLayoutConstraint(item: label, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 0.3+z, constant: 0.0)
let verConstraint = NSLayoutConstraint(item: label, attribute: .centerY, relatedBy: .equal, toItem: view, attribute: .centerY, multiplier: 0.75, constant: 0.0)
view.addConstraints([horConstraint, verConstraint])
}

-用户与应用交互后,我尝试这样做:

for label in vids[x][1] {
let label = UILabel()
label.backgroundColor = UIColor.green
}

...但什么也没发生。

最佳答案

如果你这样做:

for label in vids[x][1] {
let label = UILabel()
label.backgroundColor = UIColor.green
}

您的标签不会更改。问题在于,在 let label = UILabel() 行中,您只是创建了一个新的 UILabel 实例。此标签不是您在 iPhone 屏幕上看到的标签。

可能的解决方案之一。

在您的类中的某处创建您在第一个循环中创建的 UILabel 的存储。

var vids = [5: ["urltovideo1", "locationOne"], 7: ["urltovideo2", "locationTwo"]]
var labels: [String: UILabel] = [:]

for labelString in vids[x][1] {
let label = UILabel()
labels[labelString] = label
label.translatesAutoresizingMaskIntoConstraints = false
label.backgroundColor = UIColor.gray
label.text = vids[index[j] as! Int]![2]
let z = CGFloat(j)
self.view.addSubview(label)
let horConstraint = NSLayoutConstraint(item: label, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 0.3+z, constant: 0.0)
let verConstraint = NSLayoutConstraint(item: label, attribute: .centerY, relatedBy: .equal, toItem: view, attribute: .centerY, multiplier: 0.75, constant: 0.0)
view.addConstraints([horConstraint, verConstraint])
}

稍后使用:

for labelString in vids[x][1] {
let label = labels[labelString] // < Here you retrieves a saved label
label.backgroundColor = UIColor.green
}

关于iOS/swift 4 : change color from a programmatically created label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com