アプリ内で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];
}
何が問題なのかわかりません。助けてください。