【问题标题】:iOS load multiple view from viewcontroller and save them as imageiOS从视图控制器加载多个视图并将它们保存为图像
【发布时间】:2016-04-28 21:11:30
【问题描述】:

我有一个视图控制器,它有 4 个选项卡(一些选项卡包括滚动视图,其中包含多个视图)。我需要将选项卡的所有内容保存到 4 张图片中。我设法让每个标签返回一个UIImage 供我保存。但是我发现了一个问题,如果我没有点击标签栏(也就是说没有手动加载它们并在屏幕上显示它们),标签无法返回图像,因为它们没有视图参考。所以我的问题是,我是否预加载选项卡视图?如果是这样,怎么做? 如果不预加载,是否有更好的解决方法?

我的部分代码:

View Controller 用这个来分享:

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[shareText,[_summaryViewController getImageToShare],[_sessionLogViewController getImageToShare] ,[_breakdownViewController getImageToShare],[_skillsViewController getImageToShare]] applicationActivities:nil];

getImageToShare:

-(UIImage*) getImageToShare
{
    UIImage *image = nil;
    UIGraphicsBeginImageContextWithOptions(self.scrollView.contentSize, NO, 0.0);
    {
        CGPoint savedContentOffSet = self.scrollView.contentOffset;
        CGRect savedFrame = self.scrollView.frame;

        self.scrollView.contentOffset = CGPointZero;
        self.scrollView.frame = CGRectMake(0, 0, self.scrollView.contentSize.width, self.scrollView.contentSize.height);
        [self.scrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
        image = [ViewToImage ImageWithView:self.scrollView];

        self.scrollView.contentOffset = savedContentOffSet;
        self.scrollView.frame = savedFrame;
    }

    UIGraphicsEndImageContext();

    if (image != nil) {
        NSLog(@"there is something returned:%@",image);
    }else
        NSLog(@"nothign is returned");

    return image;
}

【问题讨论】:

  • 你的意思是你想在所有选项卡中显示 4 个不同的图像,我可能是正确的。
  • 嗨,是的,我想展示 4 张不同的图像,而不是保存它们。它就像一个汇总页面,我设法让函数在我想保存的图像中返回正确的内容。唯一的问题是,如果我没有按下选项卡来显示(加载)页面,它将返回 nil。我应该改变我的 ViewToImage 吗?我应该在此处上传以获取更多信息吗?
  • 好的nvm,经过进一步挖掘,我意识到你可以调用[_viewcontroller view]来预加载视图。现在出现一个问题。我在 4 个选项卡上有一些动画,如果我执行预加载方法,则图片返回是在动画完成之前。我看不到我想要的数据。

标签: ios objective-c image


【解决方案1】:

Nvm,我想通了,我只需要创建选项卡的副本,然后让它们不动画,只显示数据。然后预加载它们并改用它们的图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多