我一直在开发一个应用程序,我有一个需要通过AirPrint打印的UIView。为了实现这一点,我首先填写视图中的所有细节,然后将其传递给下面的代码,以便在打印之前制作pdf。 在Xcode 7中一切正常。由于我对Xcode 8进行了更新,因此使用renderInContext不再使视图呈现正确的大小。
- (NSMutableData *)createPDFDataFromUIView:(UIView *)aView {
NSMutableData *pdfDataObject=[NSMutableData data];
// create a PDF-based graphics context with mutable data object as the target
UIGraphicsBeginPDFContextToData(pdfDataObject, [aView bounds], nil);
// mark the beginning of a new page
UIGraphicsBeginPDFPage();
// get the CGContextRef for our PDF drawing
CGContextRef pdfContext= UIGraphicsGetCurrentContext();
// render the UIView’s layer into the PDF context
[[aView layer] renderInContext:pdfContext];
// end the PDF context
UIGraphicsEndPDFContext();
return pdfDataObject;
}
任何帮助都将不胜感激。