美文网首页
暴力自定义UIAlertController

暴力自定义UIAlertController

作者: 不辣先生 | 来源:发表于2019-01-29 17:46 被阅读5次

    缘起:产品出的需求,非要搞一个系统自带UIAlertController控件无法胜任的弹窗,fuck
    我各种找资料啊百度啥的,发现很多友军提供了很多参考,然并卵,问题还是没得解决,受其中一个案例的启发,我去继承系统UIAlertController写了一个自定义,说是自定义其实,就是借了UIAlertController的壳,然后自己搞个view,添加到UIAlertController上把系统的覆盖掉,这样UI效果就是你的view了。这真是一个蠢办法,但tm是真的有效,你可以自己放view那这个弹窗还不是想怎么玩就怎么玩,到这里思路基本讲完了。
    注意:唯一的注意点就是系统自带UIAlertController的view比较小,如果你自定义的view比较大超出其范围的化,响应链就可能会断了。
    我的解决方案是:把自定义的view的大小再赋给这个UIAlertController的view;

    - (void)viewDidLayoutSubviews{
        [super viewDidLayoutSubviews];
        
        self.authV.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2);
    }
    
    -(AuthHUD *)authV{
        if (!_authV) {
            _authV = (AuthHUD *)[[NSBundle mainBundle] loadNibNamed:@"AuthHUD" owner:nil options:nil].firstObject;
            _authV.delegate = self;
            self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, _authV.frame.size.width, _authV.frame.size.height);
            [self.view addSubview:self.authV];
    
        }
        return _authV;
    }
    
    

    因为我也没找到好方法去处理这种父视图的父视图(UIAlertController的view还是系统分配的,如果你去自己代码分配感觉就太冗余了)断层了的情况

    相关文章

      网友评论

          本文标题:暴力自定义UIAlertController

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