ios - UIButton 图片不可点击

标签 ios swift uibutton material-design material-components-ios

我正在尝试将图像添加到我的 MDCRaisedButton,它是 UIButton 的扩展类,用于 GoogleMaterialComponents。我可以将图像添加到按钮,但图像不可点击。我已经尝试添加 UITapGestureRecognizeraddTarget 但问题仍然存在。事实是图像本身是不可点击的,但如果我单击图像下方和上方剩余的按钮的较小部分,则会执行按钮的单击操作。这有什么问题? 下面是我的按钮代码

        btnCalibrate = MDCRaisedButton()
        btnCalibrate?.setImage(UIImage(named: "chip"), for: .normal)
        btnCalibrate?.backgroundColor = UIColor(netHex: Constants.color)
        btnCalibrate?.layer.cornerRadius = 40.0
        btnCalibrate?.imageEdgeInsets=UIEdgeInsets(top: 5, left: 2, bottom: 5, right: 2)
        btnCalibrate?.imageView?.contentMode = .scaleAspectFit
        btnCalibrate?.isUserInteractionEnabled=true

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(recalibrateFromImageView(_:)))
        btnCalibrate?.addGestureRecognizer(tapGesture)

        btnCalibrate?.translatesAutoresizingMaskIntoConstraints=false
        //btnCalibrate?.addTarget(self, action: #selector(recalibrate(_:)), for: [.touchUpInside])

        self.addSubview(btnCalibrate!)

我也尝试过将手势识别器添加到 UIButtonimageView 中,但这也不起作用。

图像当前居中。如果我单击几乎无法单击的按钮的其他可见部分。我该如何处理?

最佳答案

试试

let plusImage = UIImage(named: "chip").withRenderingMode(.alwaysTemplate)
btnCalibrate.setImage(plusImage, for: .normal)

let plusImage = UIImage(named: "chip").withRenderingMode(.alwaysTemplate)
btnCalibrate.setBackgroundImage(plusImage, for: .normal)

关于ios - UIButton 图片不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53225543/

相关文章:

ios - 分配对象的潜在泄漏

ios - CollectionView 中的自定义单元格重新排序行为

ios - 在 iOS 应用程序中处理多个 Facebook 用户登录

ios - Obj-c - 为同一 map View 上的两个不同注释设置两个不同的标注操作?

CGAffineTransform 做等距变换的 iPhone iOS [ _ ] 到/_/

ios - 如何从 firebase 数据库检索特定值并将其分配给 Swift 4 中的特定变量?

ios - Error.code 在 swift 3 中不再有效语法?

ios - UIButton - 当调用触摸重复时防止调用触摸事件

ios - 按下两个 UIButton 时如何更改它们的颜色?

objective-c - UIButton 操作不起作用