1、在DrawCircle.h文件中

  提供了接口,在使用的时候,可以设定圆心、半径、角度、圆环的宽度、圆环的背景底色、圆环的进度条颜色,当然后面三个有自定义的值。

//

//  DrawCircle.h

//  Demo-draw

//

//  Created by yyt on 16/5/10.

//  Copyright © 2016年 yyt. All rights reserved.

//

#import <UIKit/UIKit.h>

@interface DrawCircle : UIView

@property(nonatomic,assign) CGPoint centerPoint;

@property(nonatomic,assign) CGFloat radius;

@property(nonatomic,assign) CGFloat angleValue;  //圆环进度占有的角度,0~360

@property(nonatomic,assign) CGFloat lineWidth;

@property(nonatomic,strong) UIColor *bgLineColor;

@property(nonatomic,strong) UIColor *lineColor;

@end

2、在DrawCircle.m文件中

//

//  DrawCircle.m

//  Demo-draw

//

//  Created by yyt on 16/5/10.

//  Copyright © 2016年 yyt. All rights reserved.

//

#import "DrawCircle.h"

@implementation DrawCircle

- (instancetype)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];

self.backgroundColor = [UIColor whiteColor];

self.lineWidth = 10;

self.bgLineColor = [UIColor lightGrayColor];

self.lineColor = [UIColor orangeColor];

return self;

}

- (void)drawRect:(CGRect)rect {

CGContextRef bgContextRef = UIGraphicsGetCurrentContext();

CGContextAddArc(bgContextRef, _centerPoint.x, _centerPoint.y, _radius, 0, 10, 0);

CGContextSetLineWidth(bgContextRef, _lineWidth);

[_bgLineColor setStroke];

CGContextStrokePath(bgContextRef);

CGContextRef contextRef = UIGraphicsGetCurrentContext();

CGContextAddArc(contextRef, _centerPoint.x, _centerPoint.y, _radius, M_PI/2, M_PI/2+_angleValue/180*M_PI, 0);

CGContextSetLineWidth(contextRef, _lineWidth);

[_lineColor setStroke];

CGContextStrokePath(contextRef);

}

@end

3、在需要使用圆环进度条的地方ViewController.m文件中

//

//  ViewController.m

//  Demo-draw

//

//  Created by yyt on 16/5/10.

//  Copyright © 2016年 yyt. All rights reserved.

//

#import "ViewController.h"

#import "DrawCircle.h"

@interface ViewController ()

@property(nonatomic,strong) DrawCircle *view2;

@end

@implementation ViewController

static int hehe = 30;

- (void)viewDidLoad {

[super viewDidLoad];

DrawCircle *view2 = [[DrawCircle alloc] initWithFrame:CGRectMake(100, 200, 100, 100)];

self.view2 = view2;

view2.centerPoint = CGPointMake(50, 50);

view2.radius = 30;

view2.angleValue = hehe;

view2.lineWidth = 20;

view2.lineColor = [UIColor orangeColor];

[self.view addSubview:view2];

  //进度+

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

button.frame = CGRectMake(100, 100, 100, 30);

button.backgroundColor = [UIColor blueColor];

[button addTarget:self action:@selector(hehe) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

  //进度-

UIButton *button2 = [UIButton buttonWithType:UIButtonTypeSystem];

button2.frame = CGRectMake(100, 150, 100, 30);

button2.backgroundColor = [UIColor redColor];

[button2 addTarget:self action:@selector(hehe2) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button2];

}

- (void)hehe {

hehe += 30;

self.view2.angleValue = hehe;

[self.view2 setNeedsDisplay];

}

- (void)hehe2 {

hehe -= 30;

self.view2.angleValue = hehe;

[self.view2 setNeedsDisplay];

}

@end

iOS开发——自定义进度圆环的更多相关文章

  1. iOS开发自定义字体之静态字体

    最后更新 2017-04-25 在iOS开发中经常会用到字体, 一般字体文件比较小的,单一的,几十k, 可以通过内置进去;如果字体文件比较多或者字体文件比较大,通常通过动态加载方式. 静态加载方式 将 ...

  2. iOS 开发自定义一个提示框

    在开发的时候,会碰到很多需要提示的地方,提示的方法也有很多种,ios 8 以前的版本有alertview还是以后用的alertController,都是这种作用, 但是不够灵活,而且用的多了,用户体验 ...

  3. [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色

    IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...

  4. iOS开发-自定义UIAlterView(iOS 7)

    App中不可能少了弹框,弹框是交互的必要形式,使用起来也非常简单,不过最近需要自定义一个弹框,虽然iOS本身的弹框已经能满足大部分的需求,但是不可避免还是需要做一些自定义的工作.iOS7之前是可以自定 ...

  5. IOS开发自定义CheckBox控件

    IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #imp ...

  6. iOS开发自定义转场动画

    1.转场动画 iOS7之后开发者可以自定义界面切换的转场动画,就是在模态弹出(present.dismiss),Navigation的(push.pop),TabBar的系统切换效果之外自定义切换动画 ...

  7. IOS开发自定义tableviewcell的注意点😄

    自定义tableviewcell 1.xib,nib拖控件:awakefromnib: 设置2,不拖控件:- (instancetype)initWithStyle:(UITableViewCellS ...

  8. iOS开发自定义流水布局

    //集成UICollectionViewFlowLayout 自己写的布局 //  SJBFlowLayout.m //  自定义流水布局 // //  Created by zyyt on 16/7 ...

  9. iOS开发 自定义UIAlertController的样式

    引言: 关于提示框, 系统自带的提示框有时可能满足不了我们的需求, 比如一个提示框的取消按钮我需要灰色字体显示, 这时候就需要自定义提示框的样式了. 示例图 苹果自iOS8开始,就已经废弃了之前用于界 ...

随机推荐

  1. POJ 2975 Nim 尼姆博弈

    题目大意:尼姆博弈,求先手必胜的情况数 题目思路:判断 ans=(a[1]^a[2]--^a[n]),求ans^a[i] < a[i]的个数. #include<iostream> ...

  2. 使用VS2013编译webkit

    环境: win7_x64.VS2013 开始: 一.下载webkit 从网站"https://github.com/WebKit/webkit"下载webkit,我下载的版本最后的 ...

  3. HDU 1540<线段树,区间并>

    题目连接 参考 题意: 维护各个点的连续的最大连续长度. 思路: 主要是维护一个区间的三个变量ll,f[i].l为起点向右的最大连续 长度,rl:f[i].r为起点向左的最大连续长度,ml:[l,r] ...

  4. 事务(JDBC、Hibernate、Spring)

    如果不用spring管理事务,我们自己写代码来操作事务.那么这个代码怎么写要看底层怎么访问数据库了. 当采用原生JDBC访问数据库时,操作事务需要使用java.sql.Connection的API.开 ...

  5. 设置控件全局显示样式 appearance

    iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下 ...

  6. Listview和checkbox多选

    在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作.表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手.尤其当 ...

  7. ARP及RARP简介

    1.概念 ARP(Address Resolution Protocol) 地址解析协议 RARP(Reverse Address Resolution Protocol) 反向地址解析协议 2.AR ...

  8. [IDL入门] 两个PPT,IDL上手

    首先看看IDL能干什么,<Solving Real Problems with Computer Graphics>ppt是英文的,很精彩. 下载地址:http://pan.baidu.c ...

  9. json中文乱码问题

    首先在 tomcat的 D:\apache-tomcat-7.0.57\conf\server.xml里添加中文编码 <Connector port="8080" proto ...

  10. centos dmesg

    linux dmesg命令详解   功能说明:显示开机信息. 语 法:dmesg [-cn][-s ] 补充说明:kernel会将开机信息存储在ring buffer,若是开机时来不及查看信息,可利用 ...