我正在使用 Core Graphics 截取我的UIView的屏幕截图,然后将其放在该 View 的顶部(这样我以后可以对其进行动画处理):
// Get the screen shot
UIGraphicsBeginImageContextWithOptions(target.bounds.size, YES, [[UIScreen mainScreen] scale]);
[target.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageView * ss = [[UIImageView alloc] initWithImage:image];
// Add it to the View
[overlay addSubview:ss];
[target addSubview:overlay];
问题:我的 UIViewtarget
上有一些不可见的项目(我都试过了alpha = 0
)hidden = YES
。这些不可见的项目出现在屏幕截图中。
如何在不出现这些不可见项目的情况下截取屏幕截图?
更新: 我尝试使用Technical Q&A QA1703: Screen Capture in UIKit Applications 中的代码,这也存在同样的问题。
更新#2: 似乎应用了 CATransform3D 的视图会出现问题。在另一个具有 3D 子视图的父视图中,当截取此屏幕截图时,3D 效果将从视图中移除,并且它们看起来是平坦的 (2D)。