我想在UIImage
中绘制NSString
变量的内容,但我完全不知道如何做到这一点。我需要编写一个方法,该方法将接收 NSString
作为参数,并返回一个包含绘制到其中的文本的 UIImage
。
最佳答案
您可以尝试以下操作:(针对 iOS 4 进行了更新)
-(UIImage *)imageFromText:(NSString *)text
{
// set the font type and size
UIFont *font = [UIFont systemFontOfSize:20.0];
CGSize size = [text sizeWithFont:font];
// check if UIGraphicsBeginImageContextWithOptions is available (iOS is 4.0+)
if (UIGraphicsBeginImageContextWithOptions != NULL)
UIGraphicsBeginImageContextWithOptions(size,NO,0.0);
else
// iOS is < 4.0
UIGraphicsBeginImageContext(size);
// optional: add a shadow, to avoid clipping the shadow you should make the context size bigger
//
// CGContextRef ctx = UIGraphicsGetCurrentContext();
// CGContextSetShadowWithColor(ctx, CGSizeMake(1.0, 1.0), 5.0, [[UIColor grayColor] CGColor]);
// draw in context, you can use also drawInRect:withFont:
[text drawAtPoint:CGPointMake(0.0, 0.0) withFont:font];
// transfer image
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
调用它:
UIImage *image = [self imageFromText:@"This is a text"];
关于iphone - 如何使用 NSString 绘制功能从文本创建 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765537/