是否可以在不阻止与标签栏交互的情况下显示带有 mask 的 BTProgressHUD?换句话说,是否可以将 BTProgressHUD 上的掩码限制为仅选项卡当前显示的 View Controller 而不是整个窗口?
BTProgressHUD.Show(status: "Oh hai", maskType: ProgressHUD.MaskType.Gradient);
我正在尝试将 MTMBProgressHUD 换成 BTProgressHUD(因为 reasons)。不幸的是,当我显示带有掩码的 BTProgressHUD 时,它会阻止用户在显示时选择另一个选项卡(MTMBProgressHUD 没有阻止)。我绝对需要阻止当前选项卡的 View Controller 中的任何进度/交互,但我不介意用户切换到另一个选项卡而不是等待当前选项卡完成任何需要进度 HUD 的任务。
这是 full sample code Gist .它有点复杂,因为它包含选项卡栏 Controller ,并且每个选项卡都需要能够控制自己的个人 HUD(当此问题得到解决时)。
最佳答案
在 some discussion on Twitter 之后与 BTProgressHUD 的创建者一起,确定这在当前的 v1.15 版本中是不可能的。他建议修改源代码以实现此目的。我能够将 working version in just a few lines 放在一起. (它仍然需要与使用共享实例的 BTProgressHUD.Show
方法集成,但我需要每个选项卡的离散 HUD。)
如果您从这个分支构建,您可以创建一个带有父 View (相对于默认窗口)的 BTProgressHUD,这将限制覆盖掩码的覆盖范围。
var progressHud = new ProgressHUD(View); // ctor overload requires the forked version
progressHud.Show(status: labelText, maskType: ProgressHUD.MaskType.Gradient);
关于ios - 在不阻塞标签栏的情况下显示屏蔽的 BTProgressHUD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350074/