【发布时间】:2014-01-09 07:49:22
【问题描述】:
我刚刚注意到这种行为。我正在使用以下调用绘制 PDF:
[string drawInRect:renderingRect
withFont:font
lineBreakMode:NSLineBreakByWordWrapping
alignment:alignment];
一切都很好,除非字符串的第一个字符是换行符(\n)。例如:
[@"Hello hello" drawInRect:renderingRect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:alignment]; // Draws "Hello hello"
[@"\nHello hello" drawInRect:renderingRect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:alignment]; // Draws nothing
我有什么遗漏吗?如果第一个字符是新行,该方法不会打印任何内容,这对我来说似乎有点奇怪。
另外,(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode 在第一个字符是换行符时也没有问题。它可以毫无问题地进行大小估计。
【问题讨论】:
-
当我执行你的代码时,它并没有只绘制任何东西,我的意思是在没有 \n 的情况下执行一个代码之后?
-
@hussainShabbir 抱歉,我无法理解您的评论。
-
我的意思是当我执行这个时 [@"Hello hello" drawInRect:renderingRect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:alignment]; // 绘制“Hello hello”它没有为我绘制任何东西。是完整的代码吗??
-
你确定你的矩形足够大,可以容纳更多的一行吗?尝试手动创建矩形,确保高度很大,看看它是否有效。也许你应该在绘制之前对你的字符串进行编码。
-
@hussainShabbir 当然,这不是全部代码。还有创建 PDF 文档、开始页面和完成文档的部分。我省略了这些部分,因为它似乎不太相关。也许您可以尝试在 UIView 上绘图?
标签: ios objective-c nsstring pdf-generation