在从远程 Web 服务请求数据时,我在导航栏中带有后退按钮的表格上显示 MBProgressHUD。
默认情况下,HUD 覆盖整个窗口,防止点击到达底层 UI 元素。我想更改此设置,以便导航栏接收点击,因此点击后退按钮可以取消请求并关闭 HUD。
在 MBProgressHUD 0.4 中,我通过更改 'initWithView:' 方法来做到这一点:
#if 1
// SPC 2012-02-25 don't cover navigation bar (so user can cancel)
CGRect _bounds = view.bounds;
_bounds.origin.y += 64.0;
_bounds.size.height -= 64.0;
id me = [self initWithFrame:_bounds];
#else
id me = [self initWithFrame:view.bounds];
#endif
这按预期工作。
我在 MBProgressHUD 0.5 中做了同样的改变:
#if 1
// SPC 2013-03-15 don't cover navigation bar (so user can cancel)
CGRect _bounds = view.bounds;
_bounds.origin.y += 64.0;
_bounds.size.height -= 64.0;
return [self initWithFrame:_bounds];
#else
return [self initWithFrame:view.bounds];
#endif
但是HUD仍然覆盖了整个窗口。
我已经在这两个版本中逐步完成了代码,在修改后的代码之后它所做的只是调用“addSubview:”来将新创建的 HUD 添加到它的父视图中。
关于为什么它在 0.5 中失败的任何想法,以及我可以做些什么来解决这个问题?