Вы делаете что-то очень неправильное в своей начальной части кода ... Я даже не хочу идти туда, но позвольте мне разбить несколько вещей:
1) UIGraphicsBeginPDFContextToData
секундапараметр CGRect
.
2) Из того, что я понял, вам нужен очень конкретный прямоугольник того, что отображается на вашем экране, и хотя его центр полностью отличается от вида вашего контроллера представления (вы пытаетесь изменить и источник, и размер).Итак, зачем создавать зависимость от границ представления вашего контроллера представления?(помните, что границы и центр всегда идут рука об руку).
3) Так почему бы просто не избавиться от начальной части вашего кода и сделать это:
CGRect fram = CGRectMake (537, 110, 404, 772); // A rectangle with no other dependency, since you want one very specific.
NSMutableData *pdfData=[NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, fram, nil); // Passing the newly created rectangle as the second parameter to the function.
UIGraphicsBeginPDFPage();
CGContextRef pdfContext= UIGraphicsGetCurrentContext();
[tempV.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();
MFMailComposeViewController *mailComposer=[[[MFMailComposeViewController alloc]init] autorelease];
mailComposer.mailComposeDelegate=self;
[mailComposer addAttachmentData: pdfData mimeType: @"application/pdf" fileName: @"Dudel creation.pdf"];
[pdfData writeToFile:@"Dudel creation.pdf" atomically:YES];
[self presentModalViewController: mailComposer animated: YES];