当alpha值为0时按钮无法触发动作。

4
我有一个按钮,当它的alpha(透明度)为1时可以正常工作,但当我将alpha设置为0时,它不再执行功能。(我想让按钮不可见,但仍然能够响应)。 我该怎么解决这个问题呢?
谢谢!
4个回答

3

3
根据Apple文档

此方法将忽略隐藏的视图对象、禁用用户交互的视图对象以及 alpha 值小于 0.01 的视图对象。此方法在确定触摸位置时不考虑视图的内容。因此,即使指定点位于该视图内容的透明部分,仍然可能返回该视图。

任何alpha值小于0.01的UIView将被触摸事件处理系统忽略,也就是说不会接收到触摸事件。 请将其设置为至少0.02

2
UIButton 的 alpha 值设置为零将无法获取到任何触摸事件。
相反,您可以保持 alpha 值为 1.0,并将背景颜色设置为 UIColor.clear,文本设置为 ""(空)。这样,按钮将像您要求的那样不可见,但仍然能被点击。

0

你可以在按钮上方添加另一个视图,并将其设置为透明色,使其与背景颜色相同,并使用 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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接