在iOS中使用pdf绘制CATiledLayer或CALayer

时间:2012-05-26 15:41:18

标签: xcode ios5 quartz-graphics drawrect quartz-core

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

1 个答案:

答案 0 :(得分:1)

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

  1. 在touchMoved,获取当前点和2个prev points
  2. 使用这些点,获取应绘制线条的区域
  3. 使用setNeedsDisplayAtRect
  4. 在drawRect中的该区域绘制
  5. 在drawRect中,转到路径末尾并使用CGContextAddQuadCurveToPoint添加新行