iOS 自定义进度条

简介: 1. 创建MTProcessView, 并继承自UIButtonMTProcessView.h#import @interface MTProcessView : UIButton// 进度@property (nonatomic, assign)float process;@endMTProcessView.

1. 创建MTProcessView, 并继承自UIButton

MTProcessView.h

#import <UIKit/UIKit.h>

@interface MTProcessView : UIButton
// 进度
@property (nonatomic, assign)float process;
@end

MTProcessView.m实现

#import "MTProcessView.h"

@implementation MTProcessView

// 设置进度
- (void)setProcess:(float)process {
    _process = process;
    // 设置文字
    [self setTitle:[NSString stringWithFormat:@"%0.2f%%", process * 100] forState:UIControlStateNormal];
    // 重绘
    [self setNeedsDisplay];
}

// 使用贝塞尔曲线画圆
- (void)drawRect:(CGRect)rect {
    // 创建一个贝塞尔曲线
    UIBezierPath *path = [UIBezierPath bezierPath];
    // 圆心
    CGPoint center = CGPointMake(rect.size.width / 2, rect.size.height / 2);
    // 圆半径
    CGFloat radius = MIN(center.x, center.y) - 5;
    // 开始弧度
    CGFloat startAngle = - M_PI_2;
    // 结束弧度
    CGFloat endAngle = 2 * M_PI * self.process + startAngle;
    
    // 化弧
    [path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
    
    // 设置线宽
    path.lineWidth = 5;
    // 设置笔的风格--圆形
    path.lineCapStyle = kCGLineCapRound;
    // 设置线的颜色
    [[UIColor orangeColor] setStroke];
    // 绘画
    [path stroke];
}

@end

2. 使用

1). 在Main.Storyboard中拖入一个UIButton,然后设置Class为自己定义的MTProcessView


img_957def6226bdabac87433621c41e5bf4.png
图1.png

2). 设置Type为Custom, 并设置Text Color为自己想要的颜色


img_84f079f230d13f0a5728cdb01805d51d.png
图2.png

3). 通过连线到ViewController.m中,为其属性_process赋值即可。

        self.processView.process = process;
目录
相关文章
|
7月前
|
iOS开发
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
iOS多线程之NSOperationQueue-依赖、并发数、优先级、自定义Operation等最全的使用总结
218 0
|
7月前
|
API iOS开发
iOS 自定义转场动画 UIViewControllerTransitioning
iOS 自定义转场动画 UIViewControllerTransitioning
48 0
|
8月前
|
Swift iOS开发
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
258 0
|
Linux iOS开发 开发者
WIN11自定义版本ios镜像下载教程
WIN11自定义版本ios镜像下载教程
WIN11自定义版本ios镜像下载教程
|
API iOS开发 Perl
iOS UISlider自定义渐变色滑杆
iOS UISlider自定义渐变色滑杆
iOS UISlider自定义渐变色滑杆
|
API iOS开发 Perl
iOS UILabel自定义位置
iOS UILabel自定义位置
iOS UILabel自定义位置
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
219 0
|
iOS开发
iOS开发-banner滚动图自定义
iOS开发-banner滚动图自定义
183 0
iOS开发-banner滚动图自定义
|
文字识别 iOS开发
|
Go iOS开发
iOS使用xib自定义uiview
iOS使用xib自定义uiview
318 0
iOS使用xib自定义uiview