У меня есть приложение для iPad, и я пытаюсь создать PDF файл из UIView, и он почти отлично работает.
Код действительно прост:
UIGraphicsBeginPDFContextToFile( filename, bounds, nil );
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
[view.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();
Это очень хорошо работает с одним странным исключением. Если представление было на экране перед визуализацией в PDF, то UILabels в представлении отображаются в PDF как замечательные векторы. Если представление еще не было на экране (IE, контроллер был initWithNib и т.д., Но не был помещен в контроллер навигации или что-то еще), тогда текст отображается как растровое изображение с разрешением "ipad".
Это похоже на то, как действие визуализации на экран устанавливает представление, которое будет отображаться в виде векторов, когда я впоследствии передам его в pdf-контекст.
Есть ли какой-нибудь метод, который я могу вызвать или свойство, которое я могу установить на представлении или на уровне или в другом месте, чтобы имитировать это поведение, не отображая вид на экране?
Это как-то связано с UIViewPrintFormatter?