1

主に [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) が間違っています!
理由はありますか?

4

2 に答える 2

1

http://www.raywenderlich.com/6581/how-to-create-a-pdf-with-quartz-2d-in-ios-5-tutorial-part-1およびhttp://www.raywenderlich.comを参照してください。いくつかの例については、/6818/how-to-create-a-pdf-with-quartz-2d-in-ios-5-tutorial-part-2を参照してください。

于 2012-06-11T09:15:23.113 に答える
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];

幸運を!

于 2014-07-07T17:40:38.020 に答える