2012-06-11 28 views
1

我已經在iOS下創建了一些PDF,主要使用[NSString drawAtPoint]。在iOS中創建PDF:線條和矩形

我的問題是:如何繪製線條和矩形?
我如何繪製灰色框/框作爲背景圖層來包含文字?

編輯:好吧,我找到了一些關於繪製矩形:renderInContext。 不過,這種代碼: UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(100, 240, 300, 150)];
[lbl setBackgroundColor:[UIColor redColor]];
[[lbl layer] renderInContext:currentContext];

是正確的寬度/高度,但在錯誤的起源繪製的UILabel(0,0)!
任何想法爲什麼?

+0

使用'UIBezierPath'實例繪製線條或可以填充或描邊的任何其他形狀。 – Eimantas

回答

1

簡短的回答是:因爲這是如何renderInContext:的作品 - 這在目前情況下,在上下文中的當前位置(默認爲(0,0)。)提醒您層( - 樹)

如果您認爲在圖形上下文的下方,並且你有一個固定的,不可移動的一塊紙板,在桌子上有一個[正方形]的切口,並且你在切口中繪製,你想要做的事是移動表格(上下文)下方,以便繪製在所需的位置。

你可以用CGContextTranslateCTM來做到這一點。因此,對於你上面的標籤,代碼會是這個樣子:

(警告:代碼輸入瀏覽器,不檢查完美的精確性)

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

祝你好運!

+0

問題是2歲!仍然,thx爲您的答案:) –

+2

只有2歲的*你*!對於尋找相同答案的***旁邊的人來說,這是全新的。 :) – Olie