我想从UITextView获取多行字符串并将其绘制在图像上, 图像中文本的位置必须与UITextView中的位置完全相同,但我不希望jus将textView添加到UIImageView,我需要一个新图像由那些文本组成,是否可能?有什么建议吗?
答案 0 :(得分:6)
您可以将任何UIView的内容捕获到UIImage中。首先,创建一个空的UIView并将UIImageView和UITextView定位为子视图:
// Assumes you have UIImageView *myImageView and UITextField *myTextField
UIView *parentView = [[UIView alloc] initWithFrame:CGRectZero];
[parentView addSubview:myImageView];
[myImageView setFrame:CGRectMake(0, 0, 100, 100)];
[parentView addSubview:myTextField];
[myTextField setFrame:CGRectMake(20, 20, 80, 20)];
[parentView sizeToFit];
现在创建一个图形上下文并将parentView绘制到其中:
UIGraphicsBeginImageContext([parentView bounds].size);
[[parentView layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
您现在拥有一个UIImage,其中包含UIImageView和UITextField的内容,可以通过网络显示,保存或发送。
答案 1 :(得分:1)
这是一个很好的解决方案,谢谢。
我想补充一点,你需要添加
#import <QuartzCore/QuartzCore.h>
对于您的导入,警告就会消失。