1

アプリ内でPDFを生成しようとしています。文字列を描画するには、boundingRectWithSize を使用してその文字列の境界四角形のサイズを計算し、そのサイズの四角形内に文字列を描画します。

このコードは iOS 7.1 以降では問題なく動作しますが、iOS 7.0.3 では、テキストの幅が四角形の幅 (400) より大きい場合、テキストはまったく描画されません。Apple のドキュメントによると、文字列は新しい行に折り返され、四角形に収まらない場合は切り取られるべきでした。これは iOS 7.1 以降で発生していますが、iOS 7.0.3 では発生していません。

ここに私のコードスニペットがあります:

-(void)drawText:(NSString *)string
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor);

    NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
 myFontForContentBold, NSFontAttributeName,
 [NSNumber numberWithFloat:1.0], NSBaselineOffsetAttributeName, nil];

    CGRect textRect = [string boundingRectWithSize:CGSizeMake(400, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:attributes context:nil]
textRect = CGRectMake(130, 80, 400, textRect.size.height);

    [string drawInRect:textRect withAttributes:attrsDictionary];
}

何が問題なのかわかりません。助けてください。

4

1 に答える 1