Objective c 如何拍摄滚动视图的屏幕截图并附加到电子邮件?
我有一个UIScrollView,其中包含需要通过电子邮件发送的内容。屏幕截图仅捕获屏幕上的可见区域。滚动视图大小为768 x 2000。我目前使用的方法如下:Objective c 如何拍摄滚动视图的屏幕截图并附加到电子邮件?,objective-c,screenshot,Objective C,Screenshot,我有一个UIScrollView,其中包含需要通过电子邮件发送的内容。屏幕截图仅捕获屏幕上的可见区域。滚动视图大小为768 x 2000。我目前使用的方法如下: - (IBAction) Email { UIImage* image = nil; UIGraphicsBeginImageContext(_scrollView.contentSize); { CGPoint savedContentOffset = _scrollView.contentO
- (IBAction) Email
{
UIImage* image = nil;
UIGraphicsBeginImageContext(_scrollView.contentSize);
{
CGPoint savedContentOffset = _scrollView.contentOffset;
CGRect savedFrame = _scrollView.frame;
_scrollView.contentOffset = CGPointZero;
_scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height);
[_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
_scrollView.contentOffset = savedContentOffset;
_scrollView.frame = savedFrame;
}
UIGraphicsEndImageContext();
NSData * imageData = UIImageJPEGRepresentation(image, 0.95);
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"Attachment.jpeg"];
[self presentModalViewController:mc animated:YES];
}
}
谢谢你的回复。我意识到我的scrollview只是一个出口,而不是一个财产。将代码更改为以下并修复了问题 那么,问题是什么?您的功能的哪一部分不起作用?以上代码仅拍摄可见视图的屏幕截图,而不是整个滚动视图。我假设图像上下文不正确,无法捕获整个滚动视图。制作视图的PDF并通过电子邮件发送怎么样?寻找如何。谢谢你的回复。我意识到我的scrollview只是一个出口,而不是一个财产。但是分辨率很差。关于如何提高图像质量有什么想法吗?尝试使用
UIGraphicsBeginImageContextWithOptions(\u scrollView.contentSize,是的,0.0)代码>而不是UIGraphicsBeginImageContext(\u scrollView.contentSize)代码>以确保生成“视网膜”分辨率的结果。