Swift之多样的MBProgressHUD

作者: 大脸猫121 | 来源:发表于2016-07-19 18:05 被阅读4654次
    之前给大家分享过系统的中间弹框,底部弹框UIAlertController,今天来补充一下MBProgressHUD的应用吧 YoY

    首先我用Cocoapods导入了MBProgressHUD这个第三方库,关于Cocoapods的安装与使用就不给大家详细讲解啦,有一篇很好的文章分享给大家:CocoaPods的安装使用和常见问题http://www.jianshu.com/p/6e5c0f78200a
    好啦好啦,跑远啦,嘿嘿,导入MBProgressHUD之后要记得创建了桥接文件哦,我们现在写的可是swift呀。创建文件以后千万要记得设置这里:

    设置桥接文件.png
    好啦,一切准备就绪,开始敲代码:
    首先,我们在storyboard里面创建四个按钮:
    首页.png
    我们最常见的提示框
    @IBAction func defaultMBProgress(sender: AnyObject) {
        
        let HUD = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
        HUD.delegate = self
        
        //常用设置
        //小矩形的背景色
        HUD.bezelView.color = UIColor.clearColor()
        //显示的文字
        HUD.label.text = "加载中1..."
        //细节文字
        HUD.detailsLabel.text = "请耐心等待..."
        //设置背景,加遮罩
        HUD.backgroundView.style = .Blur //或SolidColor
        HUD.hideAnimated(true, afterDelay: 2)
    
    }
    
    我们最常见的提示框.png
    只有文字的提示框
    @IBAction func textMBProgress(sender: UIButton) {
        
        //只显示文字
        let hud = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
        hud.mode = MBProgressHUDMode.Text
        hud.label.text = "啦啦啦..."
        hud.detailsLabel.text = "这是详细信息"
        hud.margin = 10
        hud.offset.y = 50
        hud.removeFromSuperViewOnHide = true
        hud.hideAnimated(true, afterDelay: 3)
    }
    
    只有文字的提示框.png
    自定义的提示框
    @IBAction func customMBProgress(sender: UIButton) {
        
        //自定义视图提示
        let hud1 = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
        hud1.mode = MBProgressHUDMode.CustomView
        hud1.customView = UIImageView(image: UIImage(named: "pic_dui@2x"))
        hud1.label.text = "自定义加载..."
        hud1.offset.y = -50
        hud1.hideAnimated(true, afterDelay: 4)
    }
    
    自定义的提示框.png
    使用异步加载的提示框

    前面的几种提示框都很好理解,在多数项目中,还会涉及到异步操作的等待提示,比如网络下载数据,那就要在提示的时候,后台下载数据,完成后再自动隐藏掉。

    @IBAction func asyncShow(sender: UIButton) {
        let hud = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
        hud.label.text = "请稍等,数据加载中,预计10秒中"
        
        hud.showAnimated(true, whileExecutingBlock: {
            //异步任务,在后台运行的任务
            sleep(10)
        }) {
            //执行完成后的操作,移除
            hud.removeFromSuperview()
        }
    }
    
    这个方法:
    hud.showAnimated(<#T##animated: Bool##Bool#>, whileExecutingBlock: <#T##dispatch_block_t##dispatch_block_t##() -> Void#>)
    

    现在已经废弃了,但是也可以用,我们可以按照它的原理用GCD来实现。

    使用异步加载的提示框.gif
    好啦,MBProgressHUD就介绍到这里啦,( _ )/~~拜拜

    相关文章

      网友评论

      本文标题:Swift之多样的MBProgressHUD

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