1.画矩形
(void)drawOvalIn
矩形的rect设置为宽高相等,画出来的为正方形,如图
Paste_Image.png
2.椭圆
(void)drawRect
椭圆的rect设置为宽高相等,画出来的为圆形,如图
Paste_Image.png
Paste_Image.png
需要注意的是用椭形画○起点如图所示,而弧形设置的点为中心点
3.画弧形
(vdrawArcCenter:(CGRect)rect
bezierPathWithArcCenter的几个参数,如下
1.ArcCenter 中心点
2.radius 半径
3.startAngle开始的弧度
这个点位起点,即0点
Paste_Image.png
4.endAngle 结束的弧度
5.clockwise YES顺时针,NO逆时针
6.CAShapeLayer
Paste_Image.png
环形图代码如下
//画弧形
- (void)drawArcCenter:(CGRect)rect{
// ArcCenter 中心点
// radius 半径
// startAngle开始的弧度
// endAngle 结束的弧度
// clockwise YES顺时针,NO逆时针
CAShapeLayer * shapeLayer = [CAShapeLayer layer];
CGPoint arcCenter = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5);
CGFloat radius = 50;
CGFloat startAngle = 0;
CGFloat endAngle = M_PI_2 * 4;
BOOL clockwise = YES;
UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:radius startAngle:startAngle endAngle:endAngle clockwise:clockwise];
// [[UIColor redColor] set];
// [path addLineToPoint:arcCenter];
// [path closePath];
shapeLayer.fillColor = [UIColor clearColor].CGColor;
shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.path = path.CGPath;
shapeLayer.lineWidth = 30;
[self.layer addSublayer:shapeLayer];
// [path stroke];
}
全部代码如下
//
// drawView.m
// 02-基本线条绘制(形状)(熟悉)
//
// Created by 李亮 on 2016/11/30.
// Copyright © 2016年 www.thelast.com. All rights reserved.
//
#import "drawView.h"
@implementation drawView
- (void)drawRect:(CGRect)rect{
[self drawArcCenter:rect];
// [self drawOvalIn];
// [self drawRect];
}
//画弧形
- (void)drawArcCenter:(CGRect)rect{
// ArcCenter 中心点
// radius 半径
// startAngle开始的弧度
// endAngle 结束的弧度
// clockwise YES顺时针,NO逆时针
CAShapeLayer * shapeLayer = [CAShapeLayer layer];
CGPoint arcCenter = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5);
CGFloat radius = 50;
CGFloat startAngle = 0;
CGFloat endAngle = M_PI_2;
BOOL clockwise = YES;
UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:radius startAngle:startAngle endAngle:endAngle clockwise:clockwise];
// [[UIColor redColor] set];
// [path addLineToPoint:arcCenter];
// [path closePath];
// shapeLayer.fillColor = [UIColor redColor].CGColor;
shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.path = path.CGPath;
shapeLayer.lineWidth = 30;
[self.layer addSublayer:shapeLayer];
// [path stroke];
}
//画矩形
- (void)drawRect{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect rect = CGRectMake(50, 50, 100, 100);
UIBezierPath * path = [UIBezierPath bezierPathWithRect:rect];
[[UIColor redColor] set];
CGContextAddPath(ctx, path.CGPath);
CGContextStrokePath(ctx);
}
//椭圆
- (void)drawOvalIn{
CGRect rect = CGRectMake(50, 50, 100, 50);
UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:rect];
[[UIColor redColor] set];
[path stroke];
}
@end