jdg / MBProgressHUD

MBProgressHUD + Customizations
http://www.bukovinski.com/
MIT License
16.01k stars 3.56k forks source link

HUD should block input when graceTime is used #582

Open m1h4 opened 5 years ago

m1h4 commented 5 years ago

The HUD usually, apart from showing progress, is also used to block user interaction while an operation is in progress. However, how the graceTime is handled currently, it's not possible to block the interaction during this grace period. The implementatio keeps the HUD's root view alpha at 0 until the view is actually being shown thus the implicit behaviour of iOS where views with alpha 0 pass through touches is in effect.

Since the content of the HUD is in subviews (backgroundView, bezelView etc.) and those views are seperatelly faded in, there really is no need for setting the root view alpha to 0. Removing the three lines that manipulate the root view's alpha seems to not break any existing behaviour but enables proper input blocking in all cases.

matej commented 4 years ago

I'd argue that this is by design. The goal of graceTime is to avid the HUD from needing display in the first place and part of that is also to not block. I think id would result in a weird UX if the UI is locked but there's nothing shown. It would basically appear as a hang.