UIBezierPathshapelayer

it2026-05-19  3

 

/* 创建和使用一个path对象的过程是分开的。创建path是第一步,包含一下步骤: 1)创建一个Bezier path对象。 2)使用方法moveToPoint:去设置初始线段的起点。 3)添加line或者curve去定义一个或者多个subpaths 4)改变UIBezierPath对象跟绘图相关的属性。  方法moveToPoint:设置我们想要创建形状的起点。从这点开始,我们可以用方法addLineToPoint:去创建一个形状的线段。  */ #import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];       //画五角    [self drawPentagon];       //画曲线    [self drawRect:self.view.bounds];  }- (void)drawPentagon{       //(1)UIBezierPath对象       UIBezierPath *aPath = [UIBezierPath bezierPath];       //开始点       [aPath moveToPoint:CGPointMake(100.0, 1.0)];       //划线点          [aPath addLineToPoint:CGPointMake(200.0, 40.0)];       [aPath addLineToPoint:CGPointMake(160, 140)];       [aPath addLineToPoint:CGPointMake(40.0, 140)];       [aPath addLineToPoint:CGPointMake(0.0, 40.0)];       [aPath closePath];//关闭路径(封闭)       //设置定点是个5*5的小圆形(自己加的)       UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(100-5/2.0, 0, 5, 5)];       [aPath appendPath:path];       //2)加到CAShapeLayer,效果出来了    //shape:模型    CAShapeLayer *shapelayer = [CAShapeLayer layer];       //设置边框颜色       shapelayer.strokeColor = [[UIColor cyanColor]CGColor];       //设置填充颜色       shapelayer.fillColor = [[UIColor redColor]CGColor];       //***就是这句话在关联彼此(UIBezierPath和CAShapeLayer):       shapelayer.path = aPath.CGPath;           [self.view.layer addSublayer:shapelayer];   }   //***就是这句话在关联彼此(UIBezierPathCAShapeLayer):       shapelayer.path = aPath.CGPath;           [self.view.layer addSublayer:shapelayer];   } - (void)drawRect:(CGRect)rect{    UIColor *color = [UIColor yellowColor];    [color set]; //设置线条颜色       UIBezierPath* aPath = [UIBezierPath bezierPath];       aPath.lineWidth = 5.0;    aPath.lineCapStyle = kCGLineCapRound; //线条拐角    aPath.lineJoinStyle = kCGLineCapRound; //终点处理       [aPath moveToPoint:CGPointMake(20, 50)];       //CurveToPoint:终点    [aPath addCurveToPoint:CGPointMake(200, 50) controlPoint1:CGPointMake(110, 0) controlPoint2:CGPointMake(110, 100) ];                 [aPath stroke];       CAShapeLayer *shapelayer = [CAShapeLayer layer];    shapelayer.strokeColor = [[UIColor redColor]CGColor];    shapelayer.fillColor = [[UIColor whiteColor]CGColor];    shapelayer.path = aPath.CGPath;    [self.view.layer addSublayer:shapelayer];   } - (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.} @end      

转载于:https://www.cnblogs.com/ryc--520/articles/5037123.html

最新回复(0)