-1

我有一个滚动视图,其中包含一个用 CATiledLayer 呈现的 pdfpage,我想在 pdf 页面上绘制东西,所以我创建了一个覆盖层,我需要图形看起来矢量化,所以我决定使用 CATiledlayer 作为覆盖层。唯一的问题是绘制速度很慢(我正在使用 beizerpath 绘制),然后我尝试通过在放大和缩小时创建具有可见高度和宽度的覆盖层来优化它,所以我不需要为整个绑定的内容创建覆盖。但仍然没有运气,我想尝试 CALayer 但绘制路径变得模糊和像素化,所以我不确定如何改进这一点。我也尝试过drawinrect,但由于某种原因它似乎不起作用。

4

1 回答 1

1

我建议不要使用 bezierpath 来绘制注释,因为它需要您在每次笔移动时重新绘制整个路径。如果您使用 CGContextAddQuadCurveToPoint 仅绘制当前线段会更好。

  1. 在 touchMoved 处,获取当前点和 2 个 prev 点
  2. 使用这些点,得到应该画线的区域
  3. 使用 setNeedsDisplayAtRect 在 drawRect 中的该区域绘制
  4. 在 drawRect 中,转到路径的末尾并使用 CGContextAddQuadCurveToPoint 添加新行
于 2012-08-02T16:58:26.940 回答