gpt4 book ai didi

swift - 更改 IBOutletCollection 中 UIButton 的颜色

转载 作者:行者123 更新时间:2023-11-30 11:19:18 24 4
gpt4 key购买 nike

我有一个 UIButton 的 IBOutletCollection:

@IBOutlet var buttons: [UIButton]!

和一个点击函数:

@IBAction func button_Tap(_ sender: UIButton) {

for button in buttons {
if button.tag == sender.tag { button.backgroundColor = .blue }
else {button.backgroundColor = .white}

}
}

这些 socket 在 Storyboard中连接。

我需要在点击按钮时更改按钮的颜色。当点击第一个按钮时,它应该变成蓝色,其他按钮应该变成白色。

我的代码无法正常工作。当我点击按钮时,它会变成蓝色。但是当我点击另一个按钮时,第一个按钮不会将颜色更改为白色。

有人可以帮我解决这个问题吗?谢谢。

更新:

我在类ViewController中也有此代码:UIViewController,UICollectionViewDelegate,UICollectionViewDataSource:

let cellIdentifiers:[String] = ["FirstPercentCell", "SecondPercentCell", "ThirdPercentCell", "FourthPercentCell", "FifthPercentCell"]

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return cellIdentifiers.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let collectionCell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifiers[indexPath.item], for: indexPath)
return collectionCell
}

那么问题可能出在这部分吗?

最佳答案

试试这个代码:

@IBOutlet var buttons: [UIButton]!
var lastTappedButton: UIButton?

@IBAction func button_Tap(_ sender: UIButton) {

for button in buttons {
if let lastTappedButton = lastTappedButton, lastTappedButton != sender {
button.backgroundColor = .white
}
if button.tag == sender.tag {
button.backgroundColor = .blue
lastTappedButton = button
}
}
}

关于swift - 更改 IBOutletCollection 中 UIButton 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459933/

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