我有一个按钮,当它的alpha(透明度)为1时可以正常工作,但当我将alpha设置为0时,它不再执行功能。(我想让按钮不可见,但仍然能够响应)。
我该怎么解决这个问题呢?
谢谢!
谢谢!
将alpha设置为0,将禁用UIView并且不会接收到任何触摸事件,因此您需要将其至少设置为0.02。
源代码来自SO上的这个答案:当UIButton的alpha设置为0.0时,它是否变为禁用状态?
任何alpha值小于此方法将忽略隐藏的视图对象、禁用用户交互的视图对象以及 alpha 值小于 0.01 的视图对象。此方法在确定触摸位置时不考虑视图的内容。因此,即使指定点位于该视图内容的透明部分,仍然可能返回该视图。
0.01
的UIView将被触摸事件处理系统忽略,也就是说不会接收到触摸事件。
请将其设置为至少0.02
。UIButton
的 alpha 值设置为零将无法获取到任何触摸事件。1.0
,并将背景颜色设置为 UIColor.clear
,文本设置为 ""
(空)。这样,按钮将像您要求的那样不可见,但仍然能被点击。你可以在按钮上方添加另一个视图,并将其设置为透明色,使其与背景颜色相同,并使用 alpha 0 隐藏按钮。然后,在添加的视图上添加一个轻拍手势,这样当你轻触该视图时,它将执行一个操作。
let tap = UITapGestureRecognizer(target: self, action:#selector(self.handleTap(_:)))
aboveButtonView.addGestureRecognizer(tap)
aboveButtonView.isUserInteractionEnabled = true
self.view.addSubview(aboveButtonView)
// function which is triggered when handleTap is called
@objc func handleTap(_ sender: UITapGestureRecognizer) {
// do action needed
}