Swift 定義乙個漸變進度條,在專案中的實際應用

2021-09-12 03:07:08 字數 1657 閱讀 7397

一、結構分析

從gif圖可以看出該控制項由1.半透明的黑底popprogressbar,2.進度條progressview。3.移動的提示hintbtn

//自定義乙個繼承uiview 的popprogressbar檢視

class popprogressbar: uiview

//背景區域的顏色和透明度

var backgroundcolor1:uicolor  = uicolor.init(red: 0, green: 0, blue: 0, alpha: 0.4)

//進度條view

var progressview: uiview =  uiview()

//提示按鈕

var hintbtn: uibutton!

var beforevalue :cgfloat = 0 //前乙個值

var displaylink: cadisplaylink! //定時器 承接控制器裡的定時器,刪除view時保證定時器關閉

var path: uibezierpath!

var progresslayer :cashapelayer!

//初始化檢視

func initpopbackgroundview() -> popprogressbar

//彈出view

func addanimate(view:popprogressbar) 

//新增進度條

func addprogressview() 

//為進度條新增遮罩,及layer

@objc func gradentwith(frame:cgrect) 

//當前進度

func passvalue(currentvalue: cgfloat,allvalue: cgfloat) 

//移除或者中斷進度

@objc func tapbtnandcancelbtnclick()

//1定義一下

var progressbar: popprogressbar! //進度條

var displaylink: cadisplaylink! //定時器

var currentvalue: cgfloat = 0;

//2.在需要載入進度條的方法裡實現

//彈出乙個模擬漸變進度條

currentvalue = 0

progressbar = popprogressbar()

progressbar.addanimate(view: progressbar.initpopbackgroundview())

//定時器模擬實時資料更新

displaylink = cadisplaylink.init(target: self, selector: #selector(displaylinkrun))

displaylink.add(to: runloop.current, formode: runloop.mode.defaultrunloopmode)

progressbar.displaylink = displaylink

//3.模擬實時資料更新呼叫

@objc func displaylinkrun()

else

}

封裝乙個進度條

1.首先定義乙個處理資料需要產生進度的介面和抽象類 1 namespace progress.core 26 posscesscompleted mposscesscompleted 7 thread mthread 8bool isstop 9void start 10 11public dele...

iOS實現乙個顏色漸變的弧形進度條

在github上看到一些進度條的功能,都是通過core graph來實現。無所謂正確與否,但是開發效率明顯就差很多了,而且執行效率還是值得考究的。其實使用蘋果提供的core animation能夠非常簡單和方便的實現環形進度條效果,而且還可以高效的保證動畫效果,無論是前進還是後退 語言水平比較有限,...

實現乙個彩色進度條

顯示序列 033 0m 關閉轉義序列 033 1m 粗體或高亮 033 5m 閃爍 前景顏色序列 033 30m 黑 033 31m 紅 033 32m 綠 033 33m 黃 033 34m 藍 033 35m 洋紅 033 36m 青 033 37m 白 背景顏色序列 與前景顏色對對應,前景色是...