0

我想制作一些带有标签的 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;

但它只绘制第一行,就像在屏幕截图中一样。

模拟器截图

我哪里错了?

谢谢你。

4

1 回答 1

2

文档-drawAtPoint:forWidth:withFont:

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

因此,使用不同的方法。-drawInRect:withFont:lineBreakMode:看起来像一个可靠的候选人。

于 2013-07-08T22:13:28.513 回答