Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案
http://qmuiteam.com/ios
Other
7.08k stars 1.38k forks source link

QMUIButton 使用 adjustsButtonWhenHighlighted 后点击无法修改 alpha #1237

Closed fabcz closed 2 years ago

fabcz commented 3 years ago

Bug 表现 问题的具体描述 如题,使用 QMUIButton,想在按钮点击的时候设置 alpha 值为 0 达到隐藏按钮的目的,但 alpha 最终会被重置为 1。

如何重现 复现代码如下图: image

截图 Bug 现场的界面截图,或者 Xcode 控制台的错误信息截图,有问题的代码截图 按钮 alpha 被修改情况如下图,在单击按钮过程中前后被修改了三次,结合 UIControl (QMUI) 调用时机如下 1、touchesBegan:withEvent: 时触发 setHighlighted: 设置 alpha 为 ButtonHighlightedAlpha 即 0.5 2、UIControlEventTouchUpInside 时触发 qmui_tapBlock 代码设置 alpha 为 0 3、touchesEnded:withEvent: 时又触发 setHighlighted: 设置 alpha 为 1 image

预期的表现 正常情况下,应该是什么表现 按钮 alpha 能正常调整。 临时规避方案:关闭 adjustsButtonWhenHighlighted 属性改用 highlightedBackgroundColor 来使用高亮效果 正常方案:setHighlighted: 里 adjustsButtonWhenHighlighted:NO 时 alpha 的值改为按钮上次的 alpha 而不是固定为 1(暂未找到合适的时机存储上次的 alpha)

其他信息

MoLice commented 2 years ago

这个问题不会处理,影响面大,建议换别的方式去隐藏 button,例如 hidden、layer.mask。