当我触摸这个代码时,我试图设置图像。
首先尝试
self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)
seconde尝试将背景图像创建为背景颜色。
extension UIButton {
func setBackgroundColor(color: UIColor, forState: UIControlState) {
UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
UIGraphicsGetCurrentContext()!.setFillColor(color.cgColor)
UIGraphicsGetCurrentContext()!.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setBackgroundImage(colorImage, for: forState)
}
}
self.penNameAsImageUploadButton.setBackgroundColor(color: UIColor.sqBlack.withAlphaComponent(0.15), forState: .highlighted)
seconde方式正常运行其他按钮。但是这个按钮不起作用。
如果我触摸了2秒,它就能正常工作。如果我短暂点击按钮,动作效果很好,但图像不会改变。我在代码中设置了像boderColor和shadow这样的选项。是这种影响使突出显示状态?
答案 0 :(得分:0)
您的第一个代码将起作用:
1:为.highlighted设置图像:
self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)
2:在操作方法中,您需要相应地设置isHighlighted
true
和false
:
self.penNameAsImageUploadButton.isHighlighted = true
或者
self.penNameAsImageUploadButton.isHighlighted = false
答案 1 :(得分:0)
当点击按钮时,我累了更改背景。然后在1秒后将背景颜色按回原始颜色。我不确定好办法。但是,当我触摸时,这只是改变颜色的方法。
@IBAction func reviewAppstoreDidTap(_ sender: UIButton) {
self.reviewAppstoreButton.backgroundColor = UIColor.colorFromRGB(0x1866cb)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1))
{
self.reviewAppstoreButton.backgroundColor = UIColor.sqBlue2Appstore
}
}