2011-07-20 16 views
2

を表示させますこのコードは、テキストブロックを描画するため正常に動作NSStringのdrawInRectはCGContextShowTextAtPointが間違って私はなど、私は、このような線、テキスト、画像などの項目を描画するために作成したいくつかのユーティリティメソッドと一緒に、PDFを作成するために、私のiOSアプリケーションに</p> <p>をCGContextRefを使用していたテキスト

- (void)drawTextBlock:(NSString *)theText x:(CGFloat)x y:(CGFloat)y width:(CGFloat)w height:(CGFloat)h 
{ 
    if (theText == nil) 
    { 
     return; 
    } 

    UIGraphicsPushContext(pdfContext); 

    CGContextSaveGState(pdfContext); 
    CGContextTranslateCTM(pdfContext, 0.0f, PDF_HEIGHT); 
    CGContextScaleCTM(pdfContext, 1.0f, -1.0f); 

    [theText drawInRect:PDFCGRectMake(x, 11.0 - y - h, w, h) withFont:[UIFont systemFontOfSize:fontSize]]; 

    CGContextRestoreGState(pdfContext); 

    UIGraphicsPopContext(); 
} 

、私は、このコードの後に​​CGContextShowTextAtPointを使用して、任意の他のテキストを描画しようとした場合:私は、私はCGContextRefに複数行のテキスト文字列を描画するために使用される次のメソッドを持っています実行すると、テキストが大きくなりすぎて逆さまになります。

私はメソッドの最後に次の行を追加すると、サイズが正常に戻って行くが、テキストが逆さままだです:

CGContextSetTextMatrix(pdfContext, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0)); 

私はここで何かが欠けする必要があり、それが元のように思えますコードを保存して、描画の状態を十分に維持するだけのコンテキスト状態を復元する必要があります。ヒントや提案はありますか?

答えて

1

小さな入力がありますか?あなたのコードでは、試してみてください。

CGContextSetTextMatrix(pdfContext, CGAffineTransformMake(1.0, 0.0, 0.0, 1.0, 0.0, 0.0)); 

ノートは-1.0は今ある1.0

+0

私は、反転テキスト描画に関する別のスタックオーバーフローの記事でそのコードを発見しました。どのように、なぜそれがうまく動作するのか正確にはわかりませんが、今は何をする必要があるのでしょうか。ありがとう。 –

関連する問題

 関連する問題