Ios 当我触摸时,UIButton突出显示不工作
我试图设置图像,当我像这样触摸代码 第一次尝试是Ios 当我触摸时,UIButton突出显示不工作,ios,swift,uibutton,Ios,Swift,Uibutton,我试图设置图像,当我像这样触摸代码 第一次尝试是 self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted) 第二个尝试是创建背景图像作为背景色 extension UIButton { func setBackgroundColor(color: UIColor, forState: UICon
self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)
第二个尝试是创建背景图像作为背景色
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)
第二种方法在其他按钮上运行良好。但是这个按钮不起作用
如果我触摸两秒钟,它就工作了。如果我很快点击了按钮,操作效果很好,但图像没有改变。我在代码中设置了一些选项,比如boderColor和shadow。这会影响突出显示状态吗?您的第一个代码将正常工作: 1:设置图像。突出显示:
self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)
2:在操作方法中,您需要相应地设置ishighlight
true
和false
:
self.penNameAsImageUploadButton.isHighlighted = true
或
当按钮点击时,我试图改变背景。然后在1秒后将按钮背景色恢复为原始颜色。我不确定该怎么做。但这是我触摸时改变颜色的唯一方法
@IBAction func reviewAppstoreDidTap(_ sender: UIButton) {
self.reviewAppstoreButton.backgroundColor = UIColor.colorFromRGB(0x1866cb)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1))
{
self.reviewAppstoreButton.backgroundColor = UIColor.sqBlue2Appstore
}
}
@IBAction func reviewAppstoreDidTap(_ sender: UIButton) {
self.reviewAppstoreButton.backgroundColor = UIColor.colorFromRGB(0x1866cb)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1))
{
self.reviewAppstoreButton.backgroundColor = UIColor.sqBlue2Appstore
}
}