我正在尝试获取UITextView内容的图像,包括屏幕上当前不可见的部分。我完全按照第一个答案中指出的那样做: Getting a screenshot of a UIScrollView, including offscreen parts,但使用UITextView而不是UIScrollView除外。不幸的是,无论我对代码做了什么改变,我总是只得到我的UITextView的一部分,大约是1024x315(我在iPad模拟器上以横向方向测试它)。为什么尺寸如此奇怪,我怎么能按照我的意愿制作?
这就是我保存图像的方式(ResultsView是UITextView的一个实例):
UIImage* image = nil;
UIGraphicsBeginImageContext(ResultsView.contentSize);
CGPoint savedContentOffset = ResultsView.contentOffset;
CGRect savedFrame = ResultsView.frame;
ResultsView.contentOffset = CGPointZero;
ResultsView.frame = CGRectMake(0, 0, ResultsView.contentSize.width, ResultsView.contentSize.height);
[ResultsView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
ResultsView.contentOffset = savedContentOffset;
ResultsView.frame = savedFrame;
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
UIImageWriteToSavedPhotosAlbum([UIImage imageWithData:data], nil, nil, nil);