解决MBProgressHUD 导致屏幕不能点击

鉴于群上有人请教我,为何MBProgressHUD新版的

[self.HUD setDisableTouch:YES];

这个方法去哪里了,作者是误删了吗,没有这个API啊,怎么办,hud出现的时候,屏幕其他地方点击不了

然而,这个时候是最考英语水平的时候了,请往下看:

1.先看看MBProgressHUD.h
上面有这么一句:

解决MBProgressHUD 导致屏幕不能点击_第1张图片
第85行的注释.png

2.程序员要学会分析
这句话的意思是:*@note仍然允许触摸穿过平视显示器,可以设置hud.userInteractionEnabled= NO。

3.难道还不浅显吗?就是

self.hud.userInteractionEnabled = NO;

代替上面的旧版设置

4.然后,发现不了的小菜鸟,请学会总结自己为什么找不到,为什么会这么实现,翻翻看:

旧版代码是这样的

- (void)setDisableTouch:(BOOL)disableTouch {
    _disableTouch = disableTouch;
    
    if (disableTouch) {
        if (nil == self.backgroundBtn) {
            self.backgroundBtn = [UIButton buttonWithType:UIButtonTypeCustom];
            self.backgroundBtn.frame = self.bounds;
            [self addSubview:self.backgroundBtn];
            [self sendSubviewToBack:self.backgroundBtn];
        } else {
            self.backgroundBtn.hidden = NO;
        }
    } else {
        self.backgroundBtn.hidden = YES;
    }
}

很明显,这里用了一个遮盖了屏幕的btn,来实现在加载的时候防止用户操作的功能

而新版已经把这个btn删掉了,background已经变成了普通的view

你可能感兴趣的:(解决MBProgressHUD 导致屏幕不能点击)