iOS-自定义画圆、扇形、圆弧
自定义画圆、扇形、圆弧的UIView
ZJQView03.h
#import <UIKit/UIKit.h> #define PI 3.14159265358979323846 @interface ZJQView03 : UIView @end
ZJQView03.m
#import "ZJQView03.h" @implementation ZJQView03 -(instancetype)initWithFrame:(CGRect)frame{ self=[super initWithFrame:frame]; if(self) {} return self; } -(void)drawRect:(CGRect)rect{ //An opaque type that represents a Quartz 2D drawing environment. //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画 CGContextRef context = UIGraphicsGetCurrentContext(); //void CGContextAddArc(CGContextRef c,CGFloat x, CGFloat y,CGFloat radius,CGFloat startAngle,CGFloat endAngle, int clockwise) //1弧度=180°/π (≈57.3°) 度=弧度×180°/π 360°=360×π/180 =2π 弧度 //x,y为圆点坐标,radius半径,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针。 //CGContextDrawPath方法的第2个参数: //kCGPathFill:填充; //kCGPathEOFill表示用奇偶规则, //kCGPathStroke路径, //kCGPathFillStroke路径填充, //kCGPathEOFillStroke表示描线,不是填充 //画扇形 CGContextMoveToPoint(context, 60, 60);//移动画笔到指定坐标点 UIColor* aColor = [UIColor colorWithRed:1 green:0.0 blue:0 alpha:1];//红色 CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色 CGContextAddArc(context, 60, 60, 40, 0, 1.5*PI, 0); //添加一个圆 CGContextDrawPath(context, kCGPathFill); //填充路径 //画圆 UIColor* bColor = [UIColor colorWithRed:1 green:0.0 blue:0 alpha:1];//红色 CGContextSetFillColorWithColor(context, bColor.CGColor);//填充颜色 CGContextAddArc(context, 60, 160, 40, 0, 2*PI, 0); //添加一个圆 CGContextDrawPath(context, kCGPathFill); //填充路径 //画弧线 CGContextSetRGBStrokeColor(context,0,0,1,1.0);//画笔线的颜色:这里是蓝色 //也可以使用CGContextSetStrokeColorWithColor方法:就可以用UIColor颜色参数 //CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); CGContextSetLineWidth(context, 5.5);//线的宽度 CGContextAddArc(context, 60, 60, 41, 1.5*PI, 0*PI, 0); //添加一个圆(弧):这里起点弧为1.5*PI,终点弧为0*PI CGContextDrawPath(context, kCGPathStroke); //绘制路径 } @end
ViewController899.h
#import <UIKit/UIKit.h> #import "ZJQView03.h" @interface ViewController899 : UIViewController { @private ZJQView03* zjqView03; } @end
ViewController899.m
#import "ViewController899.h" #import "MyLog.h" #define IOS7 [[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0 //判断SDK版本号是否是7.0或7。0以上 @interface ViewController899 () @end @implementation ViewController899 - (void)viewDidLoad { [super viewDidLoad]; [self doInit]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; zjqView03.center=CGPointMake(self.view.center.x, (self.view.bounds.size.height-zjqView03.frame.origin.y)/2);//移到屏幕中心点 [MyLog logViews:self.view.window]; } -(void) doInit { //IOS7版本特殊处理 if (IOS7) { self.edgesForExtendedLayout=UIRectEdgeNone; } self.view.backgroundColor=[UIColor whiteColor]; zjqView03 = [[ZJQView03 alloc]initWithFrame:CGRectMake(0, 0, 200, 260)]; zjqView03.backgroundColor=[UIColor yellowColor]; [self.view addSubview:zjqView03]; } @end
执行效果图如下:
工程代码见附件中的demo010.zip
相关推荐
iOS-自定义日期弹窗控件,可直接拿来使用
iOS -- 自定义照相机 -- a、AVCaptureDevice。这里代表抽象的硬件设备。 b、AVCaptureInput。这里代表输入设备(可以是它的子类),它配置抽象硬件设备的ports。 c、AVCaptureOutput。它代表输出数据,管理着...
iOS-自定义弹窗管理封装组件ZFJPopManager 源码
IOS-自定义ImagePicker-ELCImagePickerController 可以取代官方的UIImagePicker,可以实现图片的多选。
iOS-自定义下拉刷新上拉加载(可根据自己的需求改) 欢迎关注 http://blog.csdn.net/u014220518/article/details/54407135
iOS-授之以鱼不如授之以渔=_=带你升入理解自定义转场动画 详细解析:http://blog.csdn.net/u014220518/article/details/73854424
自定义UITabbar
自定义的UITabBarController,有一定的封装,调用简单方便
自定义 绘制文字动画 加载动画
自定义Tabbar
自定义弧形tabBar,tabbar点击水波纹动画,及其UIwebView中oc和js相互调用示例
自定义UIPageControl,实现同时显示不同大小的圆点
该demo是和大家分享一下,在项目中自定义各种弹框的思路,用来支撑自己项目的使用,无论什么样的弹框,只要有思路,相信大家都能完美实现。感觉我这个demo对你有启发或者帮助,不妨给个星星吧 ...
简单的自定义弹框,背景图、标题、内容、按钮标题及颜色都能修改 github地址:https://github.com/13699822173/-
自定义Cell
自定义数字键盘为数字键盘添加“完成”按钮,可以在登陆注册界面引用动画的时候用,很方便
一款使用比较广泛的自定义导航栏
一个简单的自定义tabbarController,参考之前一位大神的思路,做了修改。 各位可以去我的github下载 地址 https://github.com/ZYiDa/ZLTabbarController.git , 有喜欢的可以顺便给个star,谢谢了。 这里是我的...
github: https://github.com/WadonLiu/PageControl