更改在 for 循环中以编程方式创建的 UIButton 的图像 Swift
Change a UIButton's image that was created programmatically within a for loop Swift
我在 for 循环中创建了一个 UIButton,因为这些按钮的数量取决于数据库中的特定数量。但是,我必须在点击后更改此按钮的图像,这不起作用。
我所做的是尝试按住这些按钮的数组并尝试访问这样的按钮,我认为这不起作用。
let buttonArray: [UIButton] = [UIButton]()
...extra code
for (index, num) in numberOfButtonsNeeded.enumerated() {
let button = UIButton()
button.tag = index
button.addTarget(self, action: #selector(self.tap(sender:)), for: .touchUpInside)
buttonArray.append(button)
}
...
@objc func tap(sender: UIButton) {
DispatchQueue.main.asnyc{
buttonArray[sender.tag].setImage(UIImage(named:"Somename"))
}
}
我可以访问点击手势,但不会重置此按钮的图像。有什么方法可以访问该按钮吗?我不认为这个数组有效。
这是可疑的:
@objc func tap(sender: UIButton) {
DispatchQueue.main.asnyc{
buttonArray[sender.tag].setImage(UIImage(named:"Somename"))
}
您已经在主队列中,发件人是被点击的按钮。所以你不需要数组。
@objc func tap(sender: UIButton) {
sender.setImage(UIImage(named:"Somename"))
}
我在 for 循环中创建了一个 UIButton,因为这些按钮的数量取决于数据库中的特定数量。但是,我必须在点击后更改此按钮的图像,这不起作用。
我所做的是尝试按住这些按钮的数组并尝试访问这样的按钮,我认为这不起作用。
let buttonArray: [UIButton] = [UIButton]()
...extra code
for (index, num) in numberOfButtonsNeeded.enumerated() {
let button = UIButton()
button.tag = index
button.addTarget(self, action: #selector(self.tap(sender:)), for: .touchUpInside)
buttonArray.append(button)
}
...
@objc func tap(sender: UIButton) {
DispatchQueue.main.asnyc{
buttonArray[sender.tag].setImage(UIImage(named:"Somename"))
}
}
我可以访问点击手势,但不会重置此按钮的图像。有什么方法可以访问该按钮吗?我不认为这个数组有效。
这是可疑的:
@objc func tap(sender: UIButton) {
DispatchQueue.main.asnyc{
buttonArray[sender.tag].setImage(UIImage(named:"Somename"))
}
您已经在主队列中,发件人是被点击的按钮。所以你不需要数组。
@objc func tap(sender: UIButton) {
sender.setImage(UIImage(named:"Somename"))
}