美文网首页iOS Ant
解决MBProgressHUD 导致屏幕不能点击

解决MBProgressHUD 导致屏幕不能点击

作者: 陈小翰 | 来源:发表于2016-08-23 12:34 被阅读171次

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

    [self.HUD setDisableTouch:YES];
    

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

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

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

    第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

    相关文章

      网友评论

      • 11eddd582230:可以,看错了,之前把这个设置成了YES self.hud.userInteractionEnabled = YES;
      • 11eddd582230:加了这个属性也没用啊

      本文标题:解决MBProgressHUD 导致屏幕不能点击

      本文链接:https://www.haomeiwen.com/subject/ezzgsttx.html