1

pdfファイルを作成しています。回転テキストを描画する必要があります。現在、私はこのpdfファイルを持っています

ここに画像の説明を入力

テキストを描画する私のコード

............

CGContextTranslateCTM(context, 0, frameRect.origin.y*2);
CGContextScaleCTM(context, 1.0, -1.0);
// Draw the frame.
CTFrameDraw(frame, context);


// Add these two lines to reverse the earlier transformation.
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, 0, (-1)*frameRect.origin.y*2);

を使用しなければならないことはわかっていますCGContextRotateCTM(CGContextRef c, GFloat angle)が、変換についてよく理解していないため、必要な操作を行うことができません。

4

1 に答える 1

0

以下は、ページの上部から yOffset で指定されたコンテキストに -90 度回転したテキストを追加します。

+(void)addRotatedLabel:(CGContextRef)context atYOffset:(CGFloat)yOffset{

    // -90 degrees
    CGFloat rotation = -M_PI / 2.f;
    CGContextRotateCTM(context, rotation);

    NSString *label = [NSString stringWithFormat:@"%@", @"some text"];
    CGSize maxSize = CGSizeMake(300, 12);
    UIFont *font = [UIFont systemFontOfSize:7.5f];
    CGSize textSize = [label sizeWithFont:font constrainedToSize:maxSize lineBreakMode:NSLineBreakByClipping];
    CGRect titleRect = CGRectMake(-yOffset, 32.f - textSize.height + 3.f, textSize.width, textSize.height);

    [[UIColor blackColor] setFill];
    [label drawInRect:titleRect withFont:font];

    CGContextRotateCTM(context, -rotation);
}

NSString他の回転、フォントサイズ、パスなどを処理するように簡単に変更できます。

于 2013-07-02T02:07:02.113 に答える