1

我在 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,它可以正常工作,但只会捕获屏幕上显示的内容。有任何想法吗?

4

2 回答 2

0

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

于 2015-01-12T23:48:36.020 回答
0

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

于 2014-02-18T05:41:14.910 回答