我有一个小应用程序,可以连接到蓝牙外围设备并对其进行配置。所有的蓝牙部分都工作正常,但是我正在努力根据连接状态设置与@IBAction关联的图像。如果连接了蓝牙设备,我想显示要发送的图像,如果不是,则要扫描图像。
当中央管理器获得 didDisconnectPeripheral 状态更改时,使用 setNeedsDisplay()方法,我可以更改与按钮关联的图像,但是它仅在按钮后更新接下来被触摸(与 .normal 状态的图像相同)。
有没有一种方法可以强制以编程方式编写按钮而无需重新加载图像?这是在按下图像后设置图像的代码:
var stateImage = UIImage(named: "send")
@IBAction func btoothConf(sender: UIButton) {
sender.setImage(stateImage, for: .normal)
if (peripheral != nil) && (peripheral.state == .connected) {
sendCmd(command, peripheral!, writeChar)
} else {
self.scan()
}
}
答案 0 :(得分:0)
好的,通过执行以下操作,我设法获得了所需的功能,但这似乎有点麻烦。
它可以工作,但是我认为应该有一种更简单的方法,因为我可以在单击按钮后(或者仅在背景图像之前)设置图像。