我正在尝试将图像添加到我的 MDCRaisedButton,它是 UIButton 的扩展类,用于 Google 的 MaterialComponents
。我可以将图像添加到按钮,但图像不可点击。我已经尝试添加 UITapGestureRecognizer
和 addTarget
但问题仍然存在。事实是图像本身是不可点击的,但如果我单击图像下方和上方剩余的按钮的较小部分,则会执行按钮的单击操作。这有什么问题?
下面是我的按钮代码
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!)
我也尝试过将手势识别器添加到 UIButton
的 imageView
中,但这也不起作用。
图像当前居中。如果我单击几乎无法单击的按钮的其他可见部分。我该如何处理?
最佳答案
试试
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/