UIBezierPath 和各种 layer 把我玩坏了

关于UIBezierPath基础

UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。我们使用直线段去创建矩形和多边形,使用曲线段去创建弧(arc),圆或者其他复杂的曲线形状。每一段都包括一个或者多个点,绘图命令定义如何去诠释这些点。每一个直线段或者曲线段的结束的地方是下一个的开始的地方。每一个连接的直线或者曲线段的集合成为subpath。一个UIBezierPath对象定义一个完整的路径包括一个或者多个subpaths。

*** 首先我们需要自定义一个View继承UIView😊,用来绘制曲线 ***
1.创建一个三角形

关于stroke和fill的效果图如下

112055866-97fdc6396a9c6f30

122055866-26f31d212af5916e

2.创建矩形,圆形,和一段弧线

附上效果图:

132055866-ef80e0dad53d7cf3

CAShapeLayer和CAGradientLayer

  • CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类。可以指定颜色和线宽等属性,用CGPath来描述绘制的图形.
  • CAGradientLayer,苹果给出的官方描述是:一个可以用来进行绘制##渐变背景色的layer

实战一:写一个环形的进度条

1.先通过CAShapeLayer和BezierPath创建一个圆形的进度条出来

效果图⬇️

142055866-c3d2b8bc1cb3dc60

2.创建CAGradientLayer设置渐变颜色

效果图⬇️

152055866-ecc9d6e280e831e7

162055866-f57de35c58932e36

Tips:我自己写了一个图表的Demo,大神们不要嫌弃~先上个效果图

172055866-323e6931022b54af

GIT地址:https://github.com/candy7/Graphs

2 3 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部