图形绘制与图层管理技术解析
1. 图形上下文基础操作
在图形绘制中,我们常常会遇到一些细节问题。比如在图中,条纹可能无法整齐地适配箭头三角形,最底部的条纹可能只有半条蓝色条纹。这是因为图案的定位是相对于整个图形上下文,而非填充或描边的形状。我们可以在绘制前调用 setPatternPhase 来移动图案位置。
图形上下文也可以像 UIView 一样进行变换。对图形上下文应用变换不会影响已有的绘制内容,它只会影响应用变换后进行的绘制,改变提供的坐标映射到图形上下文区域的方式。图形上下文的变换被称为 CTM(当前变换矩阵)。
我们可以充分利用图形上下文的 CTM 来避免进行简单的计算。可以使用 concatCTM 将当前变换与任何 CGAffineTransform 相乘,也有方便的函数用于对当前变换应用平移、缩放或旋转变换。
例如,之前绘制向上箭头的代码只能将箭头放置在一个固定位置,左上角硬编码为 (80,0) ,这既难以理解,又缺乏灵活性和可重用性。更明智的做法是将箭头绘制在 (0,0) ,通过从现有代码的所有 x 值中减去 80 来实现。现在,只需事先应用平移变换,将 (0,0) 映射到箭头所需的左上角,就可以轻松地将箭头绘制在任何位置。如要将其绘制在 (80,0) ,代码如下:
con.translateBy(x:80, y:0)
// no
超级会员免费看
订阅专栏 解锁全文
729

被折叠的 条评论
为什么被折叠?



