iOS自定義progressView的實現

2021-07-11 13:11:48 字數 2902 閱讀 7792

#import 

@inte***ce

commenprogressview : uiview

//你還可以根據自己的需要建立其他的屬性

@property (strong,nonatomic) uicolor *progressbackgroundcolor; //背景色

@property (strong,nonatomic) uicolor *progresstintcolor; //進度條顏色

@property (assign,nonatomic) cgfloat progressvalue; //進度條進度的值

@property (assign,nonatomic) nsinteger progresscornerradius; //進度條圓角

@property (assign,nonatomic) nsinteger progressborderwidth; //進度條邊寬度

+ (instancetype)initcommenprogressview; //初始化構造方法

@end

來到commenprogressview.m檔案

#import "commenprogressview.h"

@inte***ce

commenprogressview ()

@property (strong,nonatomic) uiview *firstview;

@property (strong,nonatomic) uiview *secondview;

@property (strong,nonatomic) uilabel *progresslabel;

@end

@implementation

commenprogressview

+ (instancetype)initcommenprogressview

- (uiview *)firstview

return _firstview;

}- (uiview *)secondview

return _secondview;

}- (uilabel *)progresslabel

return _progresslabel;

}- (void)layoutsubviews

#pragma mark - set&&get

- (void)setprogressbackgroundcolor:(uicolor *)progressbackgroundcolor

- (void)setprogressvalue:(cgfloat)progressvalue

- (void)setprogresstintcolor:(uicolor *)progresstintcolor

- (void)setprogresscornerradius:(nsinteger)progresscornerradius

- (void)setprogressborderwidth:(nsinteger)progressborderwidth

@end

至此我們就已經寫好了自定義進度條了

現在我們看看怎麼使用這個自定義控制項

來到viewcontroller.m檔案的viewdidload方法中

[super viewdidload];

commenprogressview *progressview = [commenprogressview initcommenprogressview];

nsuinteger cheight = 20

; //高度

progressview.frame = cgrectmake(5, 60,[uiscreen mainscreen].bounds

.size

.width - 10 , cheight);

uilabel *label = [[uilabel alloc]initwithframe:cgrectmake(0, 0, progressview.frame

.size

.width, progressview.frame

.size

.height)];

label.textcolor = [uicolor whitecolor];

cgfloat value = 0.30

; //進度條的值

label.text = [nsstring stringwithformat:@"%f",value];

label.textalignment = nstextalignmentright;

progressview.progressvalue = value;

progressview.progressbackgroundcolor = [uicolor lightgraycolor];

//如果設定的進度條的值<=0.3,那麼顯示紅色,否則藍色

if (value <= 0.3 )else

progressview.progresscornerradius = 0

; progressview.backgroundcolor = [uicolor redcolor];

progressview.layer

.maskstobounds = yes;

progressview.layer

.cornerradius = cheight/2

; [progressview insertsubview:label atindex:0];//將label移動到最上面

[self.view addsubview:progressview];

ios自定義字型

提供字型檔案路徑,返回所需要字型 複製 uifont customfontwithpath nsstring path size cgfloat size 這樣就不需要在plist設定任何東西,只需要得到字型庫檔案的路徑,就可以取出對應的字型。上面的方法對於ttf otf的字型都有效,但是對於ttc...

iOS 自定義鬧鐘

ios 自定義鬧鐘 需求 從伺服器獲取到一組時間,都設定成鬧鈴,預設是每天迴圈不可修改,同時可以自定義鬧鈴,可選擇週幾迴圈。可以設定開啟關閉或者刪除。一.固定鬧鐘,每天迴圈。很簡單,將需要設定成鬧鐘的時間放入乙個陣列中,通過for迴圈設定成對應的本地推送,詳情見下面的 和注釋。void addloc...

IOS 自定義協議

在自定義協議的標頭檔案 h中 protocol nsdelegate optional 可選 void onoption nsstring pstr required 必須 void onrequired nsstring pstr end inte ce nsclass nsobject id d...