基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

janzyxcode發表於2018-01-17

最近的專案是用swift寫的,而一些庫還是OC版,基於MBProgressHUD的穩定、簡單,還有設計漂亮,所以就使用Swift仿寫一個。

使用

因為是基本仿寫MBProgressHUD,所以使用的方式和MBProgressHUD基本一樣,當然,也加入了幾個自己寫的載入模式,一下是現在支援的幾個模式

1.預設模式GrayIndicator(小菊花):

    _ = NGProgressHUD.showHUDAdded(view, true)
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

2.大菊花載入模式LargeWhiteIndicator:

    let hud = NGProgressHUD.showHUDAdded(view, true)
    hud.mode = .LargeWhiteIndicator
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

3.提示語載入模式IndicatorAndText:

    let hud = NGProgressHUD.showHUDAdded(view, true)
    hud.animationType = .ZoomIn
    hud.mode = .IndicatorAndText
    hud.labelText = "Capture One"
    hud.detailsLabelText = "This is a hello world expample erro date and girl for the handsome man, get out of my way.This is a hello world expample erro date and girl for the handsome man, get out of my way.This is a hello world expample erro date and girl for the handsome man, get out of my way.This is a hello world expample erro date and girl for the handsome man, get out of my way."
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

4.旋轉環模式Rotate:

    let hud = NGProgressHUD(frame: view.bounds)
    view.addSubview(hud)
    hud.mode = .Rotate
    hud.show(true)
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

5.單文字提示模式

該模式下可以應用在一些需要文字提示語的場景,設定isUserInteractionEnabled可以不用和載入控制元件直接互動。

    let hud = NGProgressHUD(frame: view.bounds)
    hud.backgroundColor = UIColor.yellow.withAlphaComponent(0.1)
    view.addSubview(hud)
    hud.mode = .Text
    hud.labelText = "章節一"
    hud.detailsLabelText = "事件發生了封建勢力開始的考慮是否"
    hud.isUserInteractionEnabled = false
    hud.show(true)
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

6.圓環進度模式:

設計該模式是方便以後在載入圖片的場景中應用。

    let hud = NGProgressHUD(frame: view.bounds)
    view.addSubview(hud)
    hud.mode = .Progress
    hud.progress = 0.4
    hud.show(true)
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

7.自定義檢視模式:

一切為了以後便捷地擴充套件各種載入框。

let customView = UIView(frame: CGRect(x: 100, y: 100, width: 80, height: 80))
        customView.backgroundColor = UIColor.red
        let swbtn = UISwitch()
        customView.addSubview(swbtn)
        view.addSubview(customView)
        
        let hud = NGProgressHUD(frame: view.bounds)
        view.addSubview(hud)
        hud.customView = customView
        hud.mode = .CustomView
        hud.show(true)

複製程式碼

8.載入成功模式:

在一些成功或是完成的場景中使用,對於失敗的場景,可以在上一個自定義模式中定義。

    let hud = NGProgressHUD(frame: view.bounds)
    view.addSubview(hud)
    hud.mode = .SucceedStatus
    hud.show(true)
    hud.addSucceedAnimation("支付成功")
複製程式碼

基於MBProgressHUD仿寫的Swift版載入控制元件NGProgressHUD

原始碼:在目錄Swift Demo/Animation專案中。

相關文章