iOS开发——自定义进度圆环
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开发——自定义进度圆环的更多相关文章
- iOS开发自定义字体之静态字体
最后更新 2017-04-25 在iOS开发中经常会用到字体, 一般字体文件比较小的,单一的,几十k, 可以通过内置进去;如果字体文件比较多或者字体文件比较大,通常通过动态加载方式. 静态加载方式 将 ...
- iOS 开发自定义一个提示框
在开发的时候,会碰到很多需要提示的地方,提示的方法也有很多种,ios 8 以前的版本有alertview还是以后用的alertController,都是这种作用, 但是不够灵活,而且用的多了,用户体验 ...
- [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色
IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...
- iOS开发-自定义UIAlterView(iOS 7)
App中不可能少了弹框,弹框是交互的必要形式,使用起来也非常简单,不过最近需要自定义一个弹框,虽然iOS本身的弹框已经能满足大部分的需求,但是不可避免还是需要做一些自定义的工作.iOS7之前是可以自定 ...
- IOS开发自定义CheckBox控件
IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码 效果图: UICheckBoxButton.h文件如下: #import #imp ...
- iOS开发自定义转场动画
1.转场动画 iOS7之后开发者可以自定义界面切换的转场动画,就是在模态弹出(present.dismiss),Navigation的(push.pop),TabBar的系统切换效果之外自定义切换动画 ...
- IOS开发自定义tableviewcell的注意点😄
自定义tableviewcell 1.xib,nib拖控件:awakefromnib: 设置2,不拖控件:- (instancetype)initWithStyle:(UITableViewCellS ...
- iOS开发自定义流水布局
//集成UICollectionViewFlowLayout 自己写的布局 // SJBFlowLayout.m // 自定义流水布局 // // Created by zyyt on 16/7 ...
- iOS开发 自定义UIAlertController的样式
引言: 关于提示框, 系统自带的提示框有时可能满足不了我们的需求, 比如一个提示框的取消按钮我需要灰色字体显示, 这时候就需要自定义提示框的样式了. 示例图 苹果自iOS8开始,就已经废弃了之前用于界 ...
随机推荐
- BCDBOOT命令参数介绍
BCDboot 命令行选项 更新时间: 2013年10月 应用到: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R ...
- 最短路径算法——Dijkstra算法
在路由选择算法中都要用到求最短路径算法.最出名的求最短路径算法有两个,即Bellman-Ford算法和Dijkstra算法.这两种算法的思路不同,但得出的结果是相同的. 下面只介绍Dijkstra算法 ...
- cocos2d-x 3.10 显示Box2d 调试视图
1.将cocos2d-x-3.10\tests\cpp-tests\Classes\Box2DTestBed目录下的GLES-Render.h和GLES-Render.cpp拷贝到当前项目的Class ...
- 平移关节(Prismatic Joint)
package{ import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamics.Joints ...
- hdu_2688_Rotate(树状数组)
题目连接:hdu_2688_Rotate 题意:给你n数,(n<=3e6),有两个操作,Q为 当前有多少对数,满足严格递增,R l,r为旋转l,r这个区间的数 题解:求严格递增的顺序对我们可以反 ...
- hdu_2546_饭卡(01背包)
题目连接:hdu_2546_饭卡 题意:中文,不解释 题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想 #include<bits/stdc++.h> #define ...
- STL笔记之【map之总概】
1.map和multimap内部数据结构: 红黑树(平衡二叉树的一种)2.在往map和multimap中插入元素时,会自动进行排序3.map和multimap的所有元素的key都被视为常数,其元素的实 ...
- 过河(DP)
问题描述] 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成 ...
- 创建控制器的3种方式、深入了解view的创建和加载顺序
转载自:http://blog.csdn.net/weisubao/article/details/41012243 (1)创建控制器的3种方式 - (BOOL)application:(UIAppl ...
- (转)初识suse——linux
Linux这种系统很奇怪,差不多每种不同的版本,它所使用的安装等一些重要命令皆有所变化.假若,你要熟练掌握一种OS,那么如果安装软件/应用,那是入门的第一步. 安装命令中: RedHat.Cent ...