当我触摸时,UIButton强调不起作用

时间:2018-06-03 10:01:11

标签: ios swift uibutton

当我触摸这个代码时,我试图设置图像。

首先尝试

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这样的选项。是这种影响使突出显示状态?

2 个答案:

答案 0 :(得分:0)

您的第一个代码将起作用:

1:为.highlighted设置图像:

self.penNameAsImageUploadButton.setImage(#imageLiteral(resourceName: "btn_copyright_photo_upload_highligted"), for: .highlighted)

2:在操作方法中,您需要相应地设置isHighlighted truefalse

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

    }
}