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