ios - UIButton 图像不可点击
问题描述
我正在尝试将 Image 添加到我的 MDCRaisedButton 中,这是MaterialComponents
来自Google的 UIButton 的扩展类。我可以将图像添加到按钮,但图像不可点击。我都尝试过添加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!)
我也尝试将手势识别器添加到imageView
中,UIButton
但这也不起作用。
图像当前以居中显示。如果我单击几乎不可单击的按钮的其他可见部分。我该如何处理?
解决方案
尝试
let plusImage = UIImage(named: "chip").withRenderingMode(.alwaysTemplate)
btnCalibrate.setImage(plusImage, for: .normal)
或者
let plusImage = UIImage(named: "chip").withRenderingMode(.alwaysTemplate)
btnCalibrate.setBackgroundImage(plusImage, for: .normal)
推荐阅读
- javascript - javascript中字符串和十六进制的按位运算
- r - 通过缺失的行名有条件地将缺失的行添加到数据框列表中的数据框
- r - 如何使用汇总命令平均一组列并排除 R 中的其他特定列?
- docker - 如何在 docker compose 中使用 docker image 指定环境变量
- android - 如何在应用程序的背景中添加模糊效果?
- c++ - Opencv没有匹配的函数调用FastFeatureDetector
- monitoring - 是否可以在 Grafana 中绘制比率趋势图?
- json - 将 JSON 键的值存储在 Bash 变量中
- python - Python - 使用 ajax 将选择列表中的选定项目发布到 Flask
- python - 当遇到 PDF 中的图像时,pyttsx3 和 PyPDF4 停止 PDF 的文本到语音转换