Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何拍摄滚动视图的屏幕截图并附加到电子邮件?_Objective C_Screenshot - Fatal编程技术网

Objective c 如何拍摄滚动视图的屏幕截图并附加到电子邮件?

Objective c 如何拍摄滚动视图的屏幕截图并附加到电子邮件?,objective-c,screenshot,Objective C,Screenshot,我有一个UIScrollView,其中包含需要通过电子邮件发送的内容。屏幕截图仅捕获屏幕上的可见区域。滚动视图大小为768 x 2000。我目前使用的方法如下: - (IBAction) Email { UIImage* image = nil; UIGraphicsBeginImageContext(_scrollView.contentSize); { CGPoint savedContentOffset = _scrollView.contentO

我有一个UIScrollView,其中包含需要通过电子邮件发送的内容。屏幕截图仅捕获屏幕上的可见区域。滚动视图大小为768 x 2000。我目前使用的方法如下:

- (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)以确保生成“视网膜”分辨率的结果。