请选择 进入手机版 | 继续访问电脑版

IOS开发之——绘制下载进度(74)

[复制链接]
钟启航 发表于 2021-1-2 17:51:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一 概述

本文先容拖动Slider时,通过自界说View


  • Label显示当前的Slider的数字巨细
  • Progress显示Sliderder的弧度
  二 绘制进度

2.1 自界说ProgressView

设置要改变的值progress(ProgressView.h)

  1. @interface ProgressView : UIView@property (nonatomic,assign) CGFloat progress;@end
复制代码
Label和弧度显示

  1. #import "ProgressView.h"@interface ProgressView ()@property (nonatomic,weak) UILabel *label;@end@implementation ProgressView- (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;    self.label.text=[NSString stringWithFormat:@"%.2f%%",progress*100];    [self setNeedsDisplay];}// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect {    // Drawing code    //1.获取上下文    CGContextRef ctx=UIGraphicsGetCurrentContext();    //2.拼接路径    CGPoint center=CGPointMake(50, 50);    CGFloat radius=50-2;    CGFloat 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];    //3.把路径添加到上下文    CGContextAddPath(ctx, path.CGPath);    //4.把上下文渲染到视图    CGContextStrokePath(ctx);}@end
复制代码
2.2 ViewController中设置Slider改变

  1. #import "ViewController.h"#import "ProgressView.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet ProgressView *progressView;@end@implementation ViewController- (IBAction)valueChange:(UISlider *)sender{    _progressView.progress=sender.value;    NSLog(@"%f",sender.value);}- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view.}@end
复制代码
三 效果图



来源:https://blog.csdn.net/Calvin_zhou/article/details/112002012
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )