基本线条绘制(曲线)(熟悉)

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容