如何在数组中引用 UILabel 或 UIButton 集合 indexPath
how can I refer to UILabel or UIButton collections indexPath in array
@IBOutlet var buttons: [UIButton]!
@IBOutlet var labels: [UILabel]!
@IBAction func cevapSeçildi(_ sender: UIButton) {
if sender == buttons[0] {
`enter code here`
labels[0].backgroundColor = UIColor.yellow
}
}
我想要这个..
var x : Int
if sender == buttons[x] { labels[x].backgroundColor = UIColor.yellow }
你能帮帮我吗
您可以通过
获取按钮的索引
var index = buttons.index(of: sender)
然后设置
labels[index].backgroundColor = UIColor.yellow
如果您想同时将所有其他按钮设置为不同的颜色,请考虑:
let buttonIndex = buttons.index(of: sender)
for var label in labels {
if(labels.index(of: label) == buttonIndex) {
label.backgroundColor = UIColor.yellow
} else {
label.backgroundColor = UIColor.white
}
}
几点:
使用按钮数组映射到单元格索引仅适用于 single-section table 视图或集合视图。如果您有分段的 table 视图或行和列的集合视图,那么该方法将不起作用。
如果您想让所选单元格上的标签为黄色,而所有其他单元格的标签为白色,则更改所有单元格没有意义。 table view/collection 视图一次只显示几个单元格,当您滚动时,单元格会被回收并用于 table view/collection 视图中的不同索引。
如果您告诉我您使用的是 table 视图还是集合视图,我可以向您展示更好的方法。
编辑:
由于您没有使用 table 视图或集合视图,直接操作标签确实有意义:
@IBAction func cevapSeçildi(_ sender: UIButton) {
let buttonIndex = buttons.index(of: sender)
for (index, label) in labels.enumerated) {
}
if index == buttonIndex {
label.backgroundColor = UIColor.yellow
} else {
label.backgroundColor = UIColor.white
}
}
@IBOutlet var buttons: [UIButton]!
@IBOutlet var labels: [UILabel]!
@IBAction func cevapSeçildi(_ sender: UIButton) {
if sender == buttons[0] {
`enter code here`
labels[0].backgroundColor = UIColor.yellow
}
}
我想要这个..
var x : Int
if sender == buttons[x] { labels[x].backgroundColor = UIColor.yellow }
你能帮帮我吗
您可以通过
获取按钮的索引var index = buttons.index(of: sender)
然后设置
labels[index].backgroundColor = UIColor.yellow
如果您想同时将所有其他按钮设置为不同的颜色,请考虑:
let buttonIndex = buttons.index(of: sender)
for var label in labels {
if(labels.index(of: label) == buttonIndex) {
label.backgroundColor = UIColor.yellow
} else {
label.backgroundColor = UIColor.white
}
}
几点:
使用按钮数组映射到单元格索引仅适用于 single-section table 视图或集合视图。如果您有分段的 table 视图或行和列的集合视图,那么该方法将不起作用。
如果您想让所选单元格上的标签为黄色,而所有其他单元格的标签为白色,则更改所有单元格没有意义。 table view/collection 视图一次只显示几个单元格,当您滚动时,单元格会被回收并用于 table view/collection 视图中的不同索引。
如果您告诉我您使用的是 table 视图还是集合视图,我可以向您展示更好的方法。
编辑:
由于您没有使用 table 视图或集合视图,直接操作标签确实有意义:
@IBAction func cevapSeçildi(_ sender: UIButton) {
let buttonIndex = buttons.index(of: sender)
for (index, label) in labels.enumerated) {
}
if index == buttonIndex {
label.backgroundColor = UIColor.yellow
} else {
label.backgroundColor = UIColor.white
}
}