苹果Airpods pro耳机怎么改名字,苹果Airodro耳机怎么改名字?下面请看小编的详细介绍吧!......
iOS如何实现环形进度条加载效果
使用UIBezierPath曲线实现环形进度条效果。
工具/原料
- Xcode
方法/步骤
自定义CircleView继承于UIView,.h声明
@property (nonatomic, assign) CGFloat progress;
外部调用来控制显示圆形进度与文字显示。
.m声明
@property (nonatomic, strong) UILabel *cLabel;
用来显示进度条进度的显示。
重写- (instancetype)initWithFrame:(CGRect)frame方法进行界面初始化,设置文字的显示位置与文字颜色和大小,如下:
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor clearColor];
UILabel *cLabel = [[UILabel alloc] initWithFrame:self.bounds];
cLabel.font = [UIFont boldSystemFontOfSize:26.0f];
cLabel.textColor = [UIColor colorWithRed:0/255.0 green:191/255.0 blue:255/255.0 alpha:1];
cLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:cLabel];
self.cLabel = cLabel;
}
return self;
}
绘制方法需要重写- (void)drawRect:(CGRect)rect,使用UIBezierPath绘制圆形动画路径,调用stroke进行绘制,如下:
- (void)drawRect:(CGRect)rect
{
UIBezierPath *path = [[UIBezierPath alloc] init];
path.lineWidth = 10.0;
[[UIColor colorWithRed:0/255.0 green:191/255.0 blue:255/255.0 alpha:1] set];
path.lineCapStyle = kCGLineCapRound;
path.lineJoinStyle = kCGLineJoinRound;
CGFloat radius = (MIN(rect.size.width, rect.size.height) - 10.0) * 0.5;
[path addArcWithCenter:(CGPoint){rect.size.width * 0.5, rect.size.height * 0.5} radius:radius startAngle:M_PI * 1.5 endAngle:M_PI * 1.5 M_PI * 2 * _progress clockwise:YES];
[path stroke];
}
实例化CircleView并添加到指定视图上,同时定义一个定时器在定时器方法里面赋值progress进行进度设置,如下:
CircleView *circleView = [[CircleView alloc] initWithFrame:CGRectMake(50, 100, 150, 150)];
[self.view addSubview:circleView];
最终圆形进度条实现效果如下:
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章