自定義圓形進度條

2021-07-09 02:49:32 字數 2098 閱讀 7388

之前做專案的時候有用到環形進度條,先是在網上找了一下第三方控制項,發現好用是好用,就是東西太多了,有點複雜,還不如自己寫乙個簡單點適合自己用的。

先把自定義控制項的效果圖貼出來。

其實我寫的這個控制項很簡單。索性就直接把原始碼貼出來吧。

.h檔案的內容就是一些宣告

#import @inte***ce progressview : uiview

//中心顏色

@property (strong, nonatomic)uicolor *centercolor;

//圓環背景色

@property (strong, nonatomic)uicolor *arcbackcolor;

//圓環色

@property (strong, nonatomic)uicolor *arcfinishcolor;

@property (strong, nonatomic)uicolor *arcunfinishcolor;

//百分比數值(0-1)

@property (assign, nonatomic)float percent;

//圓環寬度

@property (assign, nonatomic)float width;

@end

.m檔案裡就是具體實現了

#import "progressview.h"

@implementation progressview

- (id)initwithframe:(cgrect)frame

return self;

}- (void)setpercent:(float)percent

- (void)drawrect:(cgrect)rect

- (void)addarcbackcolor

- (void)drawarc

if (_percent == 1) else

}-(void)addcenterback

- (void)addcenterlabelelse if(_percent < 1 && _percent >= 0)

cgsize viewsize = self.bounds.size;

nsmutableparagraphstyle *paragraph = [[nsmutableparagraphstyle alloc] init];

paragraph.alignment = nstextalignmentcenter;

nsdictionary *attributes = [nsdictionarydictionarywithobjectsandkeys:[uifontboldsystemfontofsize:fontsize],nsfontattributename,arccolor,nsforegroundcolorattributename,[uicolorclearcolor],nsbackgroundcolorattributename,paragraph,nsparagraphstyleattributename,nil];

[percent drawinrect:cgrectmake(5, (viewsize.height-fontsize)/2, viewsize.width-10, fontsize)withattributes:attributes];

}@end

具體的呼叫就是

progressview *progress = [[progressviewalloc]initwithframe:cgrectmake(detil.width-65, 10, 60, 60)];

progress.arcfinishcolor = color_string(@"#75ab33");

progress.arcunfinishcolor = color_string(@"#0d6fae");

progress.arcbackcolor = color_string(@"#eaeaea");

progress.percent = 1;

[detil addsubview:progress];

當然這些都有預設值,也可以不設定。

自定義圓形進度條

author wangxiao public class roundprogressbar extends view public roundprogressbar context context,attributeset attrs public roundprogressbar context ...

自定義圓形進度條

首先在values檔案下面建立 attr.xml檔案 name circleprogressbar name ringcolor format color name ridus format dimension name ringwidth format dimension name textsiz...

自定義圓形進度條

fromdegrees 動畫開始時的角度 todegrees 動畫結束時物件的旋轉角度,正代表順時針 pivotx 屬性為動畫相對於物件的x座標的開始位置 pivoty 屬性為動畫相對於物件的y座標的開始位置 duration 設定時間 android shape rectangle oval li...