WSLoader - 一個可自定義樣式的圓形進度載入控制元件
阿新 • • 發佈:2019-12-25
WSLoader
一個可自定義樣式的圓形進度載入控制元件。 歡迎 star/issue
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]