iOS学习笔记--01swift实现提示框第三方库:MBProgressHUD

本文使用swift语言使用MBProgressHUD。
开源项目MBProgressHUD可以实现多种形式的提示框。使用简单,方便。

GitHud的下载地址是:https://github.com/jdg/MBProgressHUD/

下载完成后,将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的swift项目。因为使用的swift语言,所以拖入项目的时候会提示是否新建一个桥接objective-c与swift的文件,选择是即可。此步骤会自动新建一个文件。如图:
这里写图片描述
在该文件(MBProgressHUDDemo-Bridging-Header.h)中,有这样的一句注释:
// Use this file to import your target’s public headers that you would like to expose to Swift.

意思应该是导入头文件,使得你的swift可以使用拖进去的文件。
因此,在该文件中写这么一句:

#import "MBProgressHUD.h"

会发现在Build Settings–>Swift complier -Code Generation中,多了一个项,个人理解是桥接文件MBProgressHUDDemo-Bridging-Header.h的声明。如果有不同见解,欢迎指正。如图:
这里写图片描述

尝试了几种样式的提示框。使用按键来触发。
这里写图片描述

以下是整个Demo的代码:

//
//  ViewController.swift
//  MBProgressHUDDemo
//  MBProgressHUD GitHud地址:https://github.com/jdg/MBProgressHUD/
//  Created by mobao on 15/7/1.
//  Copyright (c) 2015年 mobao. All rights reserved.
//

import UIKit


class ViewController: UIViewController {
    @IBAction func TextDialogBtn(sender: AnyObject) {
        showTextDialog()
    }
    @IBAction func ProgressDialogBtn1(sender: AnyObject) {
        showProgressDialog1()
    }
    @IBAction func ProgressDialogBtn2(sender: AnyObject) {
        showProgressDialog2()
    }
    @IBAction func CustomDialogBtn(sender: AnyObject) {
        showCustomDialog()
    }
    @IBAction func AllTextDialogBtn(sender: AnyObject) {
        showAllTextDialog()
    }

    var HUD : MBProgressHUD?
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    }
    //文本提示框
    func showTextDialog(){
        //初始化对话框,置于当前的View当中
        HUD = MBProgressHUD(view: self.view)
        self.view.addSubview(HUD!)
        //如果设置此属性,则当前view置于后台
        HUD?.dimBackground = true
        //设置对话框文字
        HUD?.labelText = "请稍等"
        HUD?.showAnimated(true, whileExecutingBlock: {
            sleep(3)
            }, completionBlock: {
            self.HUD?.removeFromSuperview()
            self.HUD = nil
        })
    }
    //框型进度提示
    func showProgressDialog1(){
        //初始化对话框,置于当前的View当中
        HUD = MBProgressHUD(view: self.view)
        self.view.addSubview(HUD!)
        //如果设置此属性,则当前view置于后台
        HUD?.dimBackground = true
        //设置对话框文字
        HUD?.labelText = "正在加载"
        //设置模式为进度框形的
        HUD?.mode = MBProgressHUDMode.Determinate
        HUD?.showAnimated(true, whileExecutingBlock: {
            var progress : Float = 0.0
            while(progress < 1.0){
                progress += 0.01
                self.HUD?.progress = progress
                usleep(50000)
            }
            }, completionBlock: {
                self.HUD?.removeFromSuperview()
                self.HUD = nil
        })
    }
    //进度条提示
    func showProgressDialog2(){
        //初始化对话框,置于当前的View当中
        HUD = MBProgressHUD(view: self.view)
        self.view.addSubview(HUD!)
        //如果设置此属性,则当前view置于后台
        HUD?.dimBackground = true
        //设置对话框文字
        HUD?.labelText = "正在加载"
        //设置模式为进度条
        HUD?.mode = MBProgressHUDMode.DeterminateHorizontalBar
        HUD?.showAnimated(true, whileExecutingBlock: {
            var progress : Float = 0.0
            while(progress < 1.0){
                progress += 0.01
                self.HUD?.progress = progress
                usleep(50000)
            }
            }, completionBlock: {
                self.HUD?.removeFromSuperview()
                self.HUD = nil
        })
    }
    //自定义提示
    func showCustomDialog(){
        //初始化对话框,置于当前的View当中
        HUD = MBProgressHUD(view: self.view)
        self.view.addSubview(HUD!)
        //如果设置此属性,则当前view置于后台
        HUD?.dimBackground = true
        //设置对话框文字
        HUD?.labelText = "操作成功"
        //设置模式为自定义
        HUD?.mode = MBProgressHUDMode.CustomView
        HUD?.customView = UIImageView(image: UIImage(named: "37x-Checkmark-1"))
        HUD?.showAnimated(true, whileExecutingBlock: {
            sleep(2)
            }, completionBlock: {
                self.HUD?.removeFromSuperview()
                self.HUD = nil
        })

    }
    //纯文本提示
    func showAllTextDialog(){
        //初始化对话框,置于当前的View当中
        HUD = MBProgressHUD(view: self.view)
        self.view.addSubview(HUD!)
        //如果设置此属性,则当前view置于后台
        HUD?.dimBackground = true
        //设置模式为纯文本提示
        HUD?.mode = MBProgressHUDMode.Text
        //设置对话框文字
        HUD?.labelText = "操作成功"
        //指定距离中心点的X轴和Y轴的偏移量,如果不指定则在屏幕中间显示
//        HUD?.yOffset = 150.0
//        HUD?.xOffset = 150.0
        HUD?.showAnimated(true, whileExecutingBlock: {
            sleep(2)
            }, completionBlock: {
                self.HUD?.removeFromSuperview()
                self.HUD = nil
        })
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
以下是运行的效果:

文本提示框:

这里写图片描述
进度提示框1:
这里写图片描述
进度提示框2:
这里写图片描述
自定义提示框:
这里写图片描述
纯文本提示框:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值