(素材源码)猫猫学IOS(二十九)UI之Quartz2D自定义下载控件

猫猫分享,必须精品

素材代码地址: 原创文章,,欢迎转载。转载请注明:翟乃玉的博客 地址:?viewmode=contents

效果

代码NYProgressView.m(nonatomic,weak) UILabel *label;/**label的懒加载*/-(UILabel *)label{if (_label == nil) {UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];label.textAlignment = NSTextAlignmentCenter;[self addSubview:label];_label = label;}return _label;}-(void)setProgress:(CGFloat)progress{_progress = progress;= [NSString stringWithFormat:@”%.2f%%”, progress*100];//重新绘制 在view上做一个重绘标记,当下次屏幕刷新的时候,调用drawRect。[self setNeedsDisplay];}- (id)initWithFrame:(CGRect)frame{self = [super initWithFrame:frame];if (self) {// Initialization code}return self;}/**画画 当视图显示的时候,默认只调用一次 解决办法://重新绘制 在view上做一个重绘标记,当下次屏幕刷新的时候,调用drawRect。 [self setNeedsDisplay]; */- (void)drawRect:(CGRect)rect{// 1:获取上下文CGContextRef ctx = UIGraphicsGetCurrentContext();center = CGPointMake(startA = -M_PI_2 ;//起始角度CGFloat endA = -M_PI_2 + _progress * M_PI * 2 ;//结束角度。UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES];//clockwise 顺时针方向。//3:把路径添加到上下文。CGContextAddPath(ctx, path.CGPath);//设置颜色为红色[[UIColor redColor] set];//设置线条的宽度CGContextSetLineWidth(ctx, 10);//设置两端的样式为圆角CGContextSetLineCap(ctx,kCGLineCapRound);//4:把上下文渲染到视图。CGContextStrokePath(ctx);}@endNYViewController.m#import “NYViewController.h”#NYViewController ()@property (weak, nonatomic) IBOutlet NYProgressView *progressView;@end@implementation NYViewController/**滑动slider发生的事件*/- (IBAction)valueChange:(UISlider *)sender {NSLog(@”%f”,sender.value);_progressView.progress = sender.value;}- (void)viewDidLoad{[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.}@end

或许是某座闻名遐迩的文化古城。我们可以沿途用镜头记录彼此的笑脸,

(素材源码)猫猫学IOS(二十九)UI之Quartz2D自定义下载控件

相关文章:

你感兴趣的文章:

标签云: