iOS實現音訊進度條效果

2021-08-31 16:23:01 字數 2097 閱讀 4323

這篇文章主要介紹了ios實現音訊進度條效果,本文寫了乙個小demo通過例項**相結合的形式給大家詳細介紹,需要的朋友可以參考下

話不多說先上效果圖

看到這個效果的時候我感覺相對比較難的點有兩點:

一、是這個進度條的進度顏色變化,這裡思路還是比較清晰的,直接用layer的mask來做就可以。

二、第二點就是這個各各條條的高度不一致又沒有規律可言,在各個方法中我最終選擇用隨機數來做。

好了思路清晰了,那就開始擼**了。

首先建立乙個view cyxaudioprogressview

@inte***ce cyxaudioprogressview : uiview

//無動畫設定 進度

@property (assign, nonatomic) cgfloat persentage;

//有動畫設定 進度 0~1

-(void)setanimationpersentage:(cgfloat)persentage;

/** 初始化layer 在完成frame賦值後呼叫一下

*/-(void)initlayers;

@end

成員變數及初始化方法

/*條條間隙*/

#define kdrawmargin 4

#define kdrawlinewidth 8

/*差值*/

#define differencevalue 51

@inte***ce cyxaudioprogressview ()/*條條 灰色路徑*/

@property (nonatomic,strong) cashapelayer *shapelayer;

/*背景黃色*/

@property (nonatomic,strong) cashapelayer *backcolorlayer;

@property (nonatomic,strong) cashapelayer *masklayer;

@end

@implementation cyxaudioprogressview

-(instancetype)initwithframe:(cgrect)frame

return self;

}

畫圖方法:

/**

初始化layer 在完成frame賦值後呼叫一下

*/-(void)initlayers

繪製路徑

/*路徑*/

-(void)initstrokelayer

self.shapelayer.path = path.cgpath;

self.backcolorlayer.path = path.cgpath;

}

設定mask來顯示黃色路徑

/*設定masklayer*/

-(void)setbackcolorlayer

手動設定百分比的兩個方法

-(void)setanimationpersentage:(cgfloat)persentage

/** * 在修改百分比的時候,修改遮罩的大小

* * @param persentage 百分比

*/- (void)setpersentage:(cgfloat)persentage

最終使用

- (void)viewdidload );

self.slider.frame = cgrectmake(30, self.view.frame.size.height-60, self.view.frame.size.width-30*2, 20);

[self.view addsubview:self.slider];

}

總結

實現進度條效果

html5 中可以使用progress標記元素實現進度條效果。progress是html5中新增的狀態互動元素,用來表示頁面中的某個任務完成的進度。展示進度條的效果可以使用整數,也可以使用百分比。屬性資訊 max 定義完成的值 value 定義程序的當前值 瀏覽器支援 chrome,firefox,...

音訊進度條設定

lis click function else 可應用於倒計時 該函式求我們已知秒數求小時,分鐘,秒的具體時間,h 小時 m 分鐘 s 秒數 如果h,m,s小於10,顯示的樣式為 01 如果計算沒有小時,那麼將不顯示小時 param val function getshowtime val else...

ios弧形進度條 iOS 圓形進度條

釋放雙眼,帶上耳機,聽聽看 今天產品要弄乙個圓形的進度條 有很多開源的進度條不用,非要弄這種效果,就不吐槽了,還是想想怎麼實現 廢話就不多說了 直接上 import inte ce roundprogressview uiview 進度條顏色 property strong,nonatomic ui...