Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当我触摸时,UIButton突出显示不工作_Ios_Swift_Uibutton - Fatal编程技术网

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

    }
}