利用CAShapeLayer、UIBezierPath、CAAnimation 实现步骤实时进度条。
效果图:
实现步骤:
1、创建 DynamicStepProgressView 类,继承UIView:
------------- DynamicStepProgressView.h --------------------
#import <UIKit/UIKit.h>
@interface DynamicStepProgressView :UIView
/*
* frame:传入的CGRect决定了progressView的位置及大小
* targetNumber:传入时间节点数目(例:5)
*/
- (instancetype)initWithFrame:(CGRect)frame targetNumber:(NSInteger)targetNumber;
/*
* progress:当前进度 (传入整数例:4)
*/
- (void)setProgress:(CGFloat)progress;
@end
------------- DynamicStepProgressView.m -----------------------
@interface DynamicStepProgressView() <CAAnimationDelegate>
@property(nonatomic,strong)CAShapeLayer *arcLayer1;
@property(nonatomic,strong)CAShapeLayer *arcLayer2;
@property (nonatomic ,assign)NSInteger targetNum;
@property (nonatomic,assign)CGFloat progressNum;
@end
@implementation DynamicStepProgressView
- (instancetype)initWithFrame:(CGRect)frame targetNumber:(NSInteger)targetNumber
{
self = [superinitWithFrame:frame];
if (self) {
_targetNum = targetNumber;
[self