【问题标题】:Capture off screen content as UIImage in iOS7在iOS7中将屏幕内容捕获为UIImage
【发布时间】:2014-02-18 05:34:16
【问题描述】:

我在 UIScrollView 中有一个 UIView,它比屏幕高得多。我的代码是这样的

UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, -500.0f, 320.0f, 2000.0f)];
[_scrollView addSubview:contentView];

我想捕捉 contentView 的图像

//Screen capture.
UIGraphicsBeginImageContextWithOptions(contentView.frame.size, NULL, 0.0f);
[self.view drawViewHierarchyInRect:contentView.bounds afterScreenUpdates:NO];
UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

上面的代码可以在模拟器上运行,但不能在实际设备上运行(iPod 5th gen)

如果我捕获 scrollView 而不是 contentView,它可以正常工作,但只会捕获屏幕上显示的内容。有什么想法吗?

【问题讨论】:

    标签: ios objective-c uiscrollview snapshot-view


    【解决方案1】:

    使用scrollView.contentOffset。获取当前在屏幕上的视图的框架。

    【讨论】:

    • 这不是我想要的,我只是希望可以一​​次捕获滚动视图中的所有内容。我现在只能捕捉屏幕上的内容,如果我更改 drawViewHierarchyInRect 的偏移量,它只会返回一个空图像
    【解决方案2】:

    好吧,我认为这可能是不可能的,因为 iOS 不会为了获得更多性能和电池寿命而绘制屏幕内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多