【发布时间】:2015-01-16 08:48:23
【问题描述】:
我正在尝试在我的应用程序中生成一个 pdf。为了绘制一个字符串,我使用 boundingRectWithSize 计算该字符串的边界矩形的大小,然后在该大小的矩形内绘制字符串。
代码在 iOS 7.1 及更高版本中运行良好,但在 iOS 7.0.3 中,如果文本的宽度大于矩形的宽度 (400),则根本不会绘制文本。根据 Apple 的文档,如果字符串不适合矩形,则应该将字符串换行并剪掉,这在 iOS 7.1 及更高版本中发生,但在 iOS 7.0.3 中没有。
这是我的代码 sn-p:
-(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];
}
我无法弄清楚问题可能是什么。请帮忙。
【问题讨论】:
-
您的代码可能在以
CGRect textRect = ...开头的行有一个错误 -
我编辑了我的答案。看看它是否有效
标签: ios objective-c ios7 pdf-generation drawinrect