這篇文章主要介紹了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...