微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改在 for 循环 Swift 中以编程方式创建的 UIButton 的图像

如何解决更改在 for 循环 Swift 中以编程方式创建的 UIButton 的图像

我在 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"))
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。