【源碼】iOS自定義進度條高度(UIProgressView進度條高度改變的實現)


今天自定義了iOS中的進度條,發現系統的進度條高度無法改變,

現在自己封裝了一種進度條(實際是是UIView而不是UIProgressView),可以改變進度條的高度,非常好用,分享給大家,直接上代碼:

//  CTWBProgress.h

//  Created by WBapple on 16/7/31.

//  Copyright © 2016年 王彬. All rights reserved.

//

 

#import <UIKit/UIKit.h>

 

@interface CTWBProgress : UIView

// 進度條背景圖片

@property (retain, nonatomic) UIImageView *trackView;

// 進圖條填充圖片

@property (retain, nonatomic) UIImageView *progressView;

//進度

@property (nonatomic) CGFloat targetProgress;

//設置進度條的值

- (void)setProgress:(CGFloat)progress;

@end

 

 

 

//  CTWBProgresss.m

//  Created by WBapple on 16/7/31.

//  Copyright © 2016年 王彬. All rights reserved.

#import "CTWBProgress.h"

 

@implementation CTWBProgress

//初始化進度條(此處設置進度條背景圖片和進圖條填充圖片)

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self)

    {

        self.backgroundColor = [UIColor clearColor];

        // 背景圖像

        _trackView =

        [[UIImageView alloc] initWithFrame:CGRectMake (0, 0, frame.size.width, frame.size.height)];

        [_trackView setImage:[UIImage imageNamed:@"1.png"]];

        //當前view的主要作用是將出界了的_progressView剪切掉,所以需將clipsToBounds設置為YES

        _trackView.clipsToBounds = YES;

        [self addSubview:_trackView];

        // 填充圖像

        _progressView = [[UIImageView alloc]

        initWithFrame:CGRectMake (0 - frame.size.width, 0, frame.size.width, frame.size.height)];

        [_progressView setImage:[UIImage imageNamed:@"2.png"]];

        [_trackView addSubview:_progressView];

    }

    return self;

}

//設置進度條的值

- (void)setProgress:(CGFloat)progress

{

    _targetProgress = progress;

    [self changeProgressViewFrame];

}

//修改顯示內容

- (void)changeProgressViewFrame

{

    _progressView.frame = CGRectMake (self.frame.size.width * _targetProgress - self.frame.size.width,

                                      0, self.frame.size.width, self.frame.size.height);

}

 

@end

 

使用進度條方法

#import "CTWBProgress.h"

 CTWBProgress* progressView;

  float progressVlaue;

   // 給進度條一個frame,給進度條設置值即可

     progressView = [[CTWBProgress alloc] initWithFrame:CGRectMake(FITWIDTH(108), FITHEIGHT(960), FITWIDTH(864), FITHEIGHT(80))];

   [progressView setProgress:progressVlaue];

    [self.view addSubview:progressView];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM