NSString drawAtPoint用

时间:2013-07-08 21:05:11

标签: ios uiimage

我想用标签制作一些UIImage,如果没有加载照片,它会显示。 在应用程序中生成此图像更有用,因为它非常容易本地化文本。 我有代码:

NSString *text = @"Photo not loaded yet. Please wait.";
UIFont *font = [UIFont boldSystemFontOfSize:35];
CGSize imageSize = CGSizeMake(400, 400);

CGSize constraint = CGSizeMake(imageSize.width * 0.8f, imageSize.height * 0.8f);
CGSize textSize = [text sizeWithFont:font constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);

CGPoint pointToDraw = CGPointMake((imageSize.width - textSize.width) / 2, (imageSize.height - textSize.height) / 2);

[text drawAtPoint:pointToDraw forWidth:textSize.width withFont:font lineBreakMode:NSLineBreakByWordWrapping];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;

但它只画了第一行,就像截图一样。

Simulator screenshot

我哪里错了?

谢谢。

1 个答案:

答案 0 :(得分:2)

来自-drawAtPoint:forWidth:withFont:的{​​{1}}:

  

使用指定的字体和属性在当前图形上下文中的指定点处在单行中绘制字符串。

Ergo,使用不同的方法。 -drawInRect:withFont:lineBreakMode:看起来像个坚实的候选人。