【问题标题】:Creating PDF in iOS: Lines and Rectangles在 iOS 中创建 PDF:线条和矩形
【发布时间】:2012-06-11 08:58:46
【问题描述】:

我已经在 iOS 下主要使用 [NSString drawAtPoint] 创建了一些 PDF。

我的问题是:如何绘制线条和矩形?
以及如何绘制灰色框/框架作为背景层以在其中包含文本?

编辑:好的,我发现了一些关于绘制矩形的东西:renderInContext。 尽管如此,这段代码: UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(100, 240, 300, 150)];
[lbl setBackgroundColor:[UIColor redColor]];
[[lbl layer] renderInContext:currentContext];

正在绘制具有正确宽度/高度但原点错误 (0, 0) 的 UILabel!
知道为什么吗?

【问题讨论】:

  • 使用UIBezierPath 实例来绘制线条或任何其他可以填充或描边的形状。

标签: ios pdf


【解决方案1】:

【讨论】:

  • 不完全是我想要的,但是一个好的开始。我要结束这个问题以开始一个新的更具体的问题。
【解决方案2】:

简短的回答是:因为renderInContext: 就是这样工作的——它在当前上下文中的上下文当前位置(默认为 (0,0))绘制您的层(-tree)。

如果您根据下表中的图形上下文来考虑,并且您有一块固定的、不可移动的硬纸板在桌子上带有 [方形] 切口,然后您在切口处绘制,您要做的事情是移动表格(上下文)下方,以便在所需位置进行绘制。

您可以使用CGContextTranslateCTM 来执行此操作。因此,对于您上面的标签,代码如下所示:

(警告:在浏览器中输入的代码,未检查是否完全准确。)

CGContextTranslateCTM(ctx, -100, -240);  // Note how you're moving /negative/ because you're moving the table, not the cardboard.
[[lbl layer] renderInContext:currentContext];

祝你好运!

【讨论】:

  • 才2岁!对于寻找相同答案的 next 人来说,这是全新的。 :)
猜你喜欢
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
相关资源
最近更新 更多