在 iOS 中使用 pdf 在 CATiledLayer 或 CALayer 上绘制



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

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

  1. 在触摸移动时,获取当前点和 2 个上一个点
  2. 使用这些点,获取应绘制线的区域
  3. 使用 setNeedsDisplayAtRect 在 drawRect 中的该区域绘制
  4. 在drawRect中,转到路径的尽头并使用CGContextAddQuadCurveToPoint添加新行

最新更新