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) に表示されます。