Я хотел бы взять UITextView и позволить пользователю вводить в него текст, а затем запускать копию содержимого в контексте кварцевого растрового изображения. Кто-нибудь знает, как я могу выполнить это действие копирования? Должен ли я переопределить метод drawRect и вызвать [super drawRect], а затем затем взять полученный контекст и скопировать его? Если да, есть ли у кого-нибудь ссылка на образец кода для копирования из одного контекста в другой?
Обновление: прочитав ссылку в ответе ниже, я собрал все это, чтобы попытаться скопировать содержимое UIView в контекст растрового изображения, но что-то все еще не так. Я получаю зеркальное отображение моего содержимого по оси X (то есть вверх ногами). Я пробовал использовать CGContextScaleCTM (), но, похоже, это не помогло.
Я проверил, что созданный UIImage из первых четырех строк правильно создает UIImage, который не поворачивается / переворачивается странным образом, поэтому я что-то делаю неправильно с последующими вызовами.
// copy contents to bitmap context
UIGraphicsBeginImageContext(mTextView.bounds.size);
[mTextView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self setNeedsDisplay];
// render the created image to the bitmap context
CGImageRef cgImage = [image CGImage];
CGContextScaleCTM(mContext, 1.0, -1.0); // doesn't seem to change result
CGContextDrawImage(mContext, CGRectMake(
mTextView.frame.origin.x,
mTextView.frame.origin.y,
[image size].width, [image size].height), cgImage);
Какие-либо предложения?