1

是否可以在不阻止与标签栏交互的情况下显示带有蒙版的 BTProgressHUD?换句话说,BTProgressHUD 上的掩码是否可以仅限于选项卡当前显示的视图控制器而不是整个窗口?

BTProgressHUD.Show(status: "Oh hai", maskType: ProgressHUD.MaskType.Gradient);

BTProgressHUD 掩码阻止切换选项卡的能力。

我正在尝试将 MTMBProgressHUD 换成 BTProgressHUD(因为原因)。不幸的是,当我显示带有掩码的 BTProgressHUD 时,它会阻止用户在显示时选择另一个选项卡(MTMBProgressHUD 没有阻止)。我肯定需要阻止当前选项卡的视图控制器中的任何进度/交互,但我不介意用户是否切换到另一个选项卡而不是等待当前选项卡完成任何需要进度 HUD 的任务。

这是完整的示例代码 Gist。它有点复杂,因为它包含选项卡栏控制器,并且每个选项卡都需要能够控制自己的单独 HUD(当此问题得到解决时)。

4

1 回答 1

1

Twitter 上与 BTProgressHUD 的创建者讨论后,确定在当前的 v1.15 版本中这是不可能的。他建议修改源以实现这一点。我只用几行就可以把一个工作版本放在一起。(它仍然需要与BTProgressHUD.Show使用共享实例的方法集成,但我需要每个选项卡的离散 HUD。)

如果从这个 fork 构建,则可以创建一个带有父视图的 BTProgressHUD(而不是默认为窗口),这将限制覆盖掩码的覆盖范围。

var progressHud = new ProgressHUD(View); // ctor overload requires the forked version
progressHud.Show(status: labelText, maskType: ProgressHUD.MaskType.Gradient);

显示 HUD 时显示标签切换的动画 GIF

于 2015-02-06T18:09:23.717 回答