-
CAShapeLayer
和CALayer
的区别 -
普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的bounds值一致,它本身是有形状的,而且是矩形.
-
CAShapeLayer在初始化时也需要给一个frame值,但是,它本身没有形状,它的形状来源于你给定的一个path,然后它去取CGPath值,它与CALayer有着很大的区别
-
使用UIBezierPath绘制不规则曲线1
// 获取path UIBezierPath *aPath = [UIBezierPath bezierPath]; // 设定起始点 [aPath moveToPoint:CGPointMake(0.0f, 0.0f)]; // 添加一个不规则点 [aPath addCurveToPoint:CGPointMake(100.f, 100.f) controlPoint1:CGPointMake(50.f, 0.f) // 开始点 controlPoint2:CGPointMake(0.f, 50.f)]; // 结束点 // 添加一个点 [aPath addLineToPoint:CGPointMake(0.0f, 100.f)]; // 闭合path [aPath closePath]; 复制代码
-
使用UIBezierPath绘制不规则曲线2
// 获取path UIBezierPath *aPath = [UIBezierPath bezierPath]; // 设定起始点 [aPath moveToPoint:CGPointMake(0.0f, 0.0f)]; // 添加一个不规则点 [aPath addQuadCurveToPoint:CGPointMake(100.f, 100.f) controlPoint:CGPointMake(0.f, 90.f)]; // 控制点 // 添加一个点 [aPath addLineToPoint:CGPointMake(0.0f, 100.f)]; // 闭合path [aPath closePath]; 复制代码