Does UIButton become disabled when its alpha is se

2019-01-20 08:00发布

问题:

I have a few buttons in my app whose alpha is currently set to zero. These buttons are completely non-responsive, but as soon as I increase their alpha, they begin to respond. Is this expected behavior?

回答1:

As per Apple's documentation for UIView's hitTest:withEvent: method:

This method ignores view objects that are hidden, that have disabled user interactions, or have an alpha level less than 0.01.

So any UIView that has alpha lower than 0.01 will be ignored by the touch events processing system, i.e. will not receive touch.



回答2:

I'm a little late to the game but you could always set the UIButton background color to clearcolor. This would keep them active. In my case, I am pulsating a button to give it a glowing effect but to do this, I must set it's background to clear, then add a UIIMageView as a subview and add the effect to the image, NOT the button.

Hope this helps anyone else with this problem.



回答3:

When the alpha is 0 they are responsive, as alpha = 0 is like hidden = YES and you can't click a hidden button.