1. 程式人生 > IOS開發 >WSLoader - 一個可自定義樣式的圓形進度載入控制元件

WSLoader - 一個可自定義樣式的圓形進度載入控制元件

WSLoader

一個可自定義樣式的圓形進度載入控制元件。 歡迎 star/issue

Github Repo

I. 效果

低配版

高配版

II. 環境

swift version 5.1

iOS version 11.0+ (其他版本未測試。 沒有使用過低版本不支援的 API, 所以改一下 target 的版本, 應該都能夠相容)

III. 使用

1. 拿過原始檔直接用

2. 初始化傳入樣式 style,就可以像正常控制元件一樣使用了


     let frame = CGRect(x: (view.frame.width - 150)/2,y: 100,width: 150,height: 150
) loader = WSLoader(frame: frame,style: .excutable) view.addSubview(loader) loader.value = 0.2 複製程式碼

height 值無所謂多少,因為 loader 的 rect 總是正方形, 只根據 frame 來構建檢視和圖層。

之後,在合適的地方,給 loader 的 value 和 text 屬性賦值就行了。 UI操作已經進行主執行緒非同步處理,所以賦值操作不用再在主執行緒進行了

3. style 有四種:

  • none

  • label

  • bilabel

  • excutable

    效果如最開始的兩張效果圖。可以通過賦值 playAction 和 pauseAction 這兩個閉包 來實現 loader 的點選

    loader value 值設定成 1.0 時,會自動切換成 label 樣式

4. 使用 excutable 樣式時,需要資原始檔包含有 “play” 和 “pause” 兩張圖片。 請自行替換

5. 高配版本 loader 樣式程式碼

    let frame = CGRect(x: (view.frame.width - 150)/2,y: 100,width: 150,height: 150)
    loader = WSLoader(frame: frame,style: .excutable)
    view.addSubview(loader)
    loader.textColor = .red
    loader.textFont = .systemFont(ofSize: 28)
    loader.trackWidth = 25
    loader.buttonTintColor = .red
    loader.isPulsing = true
    loader.pulsingScale = 1.4
    loader.pulsingDuration = 1.6

    loader.stopPulsingWhenFinish = true
    loader.pauseAction = { atPercentage in
        /*
        self.task.cancel { (data) in
            if data != nil {
                self.resumeData = data!
                self.task = nil
                print("stop at \(data!.count)")
            }
        }
        */
    }
    loader.playAction = { atPercentage in
        /*
        if self.resumeData != nil {
            self.task = self.session.downloadTask(withResumeData: self.resumeData!)
        } else {
            let url = URL(string: "https://images.pexels.com/photos/2939337/pexels-photo-2939337.jpeg")
            self.task = self.session.downloadTask(with: url!)
        }
        self.task.resume()
        self.resumeData = nil
        */
    }
複製程式碼

IV. 許可證 - MIT

V. 注意

❗ Demo中所包含的圖片網址 或者本文件中的效果圖所包含的下載圖片, 來自於 pexels.com. 如有侵權,請聯絡刪除!

VI. 如果此 repo 對您有用, 不妨讚賞幾枚硬幣買杯咖啡哈?

paypal: www.paypal.me/coooooooder…

微信讚賞:

VII. 聯絡

微信: myjawdrops

QQ: 894318488

gmail:[email protected]