2013-04-26 44 views
6
sadece benim UITableView navigasyon ve sekme çubukları ile değil, yalnızca tüm ekranı bir fotoğraf çeker Aşağıdaki kod ile sorun yaşıyorum

...Kaydet tam ekran

ben dahil olmak üzere tam ekran yakalama istiyorum gezinme ve sekme çubukları. Herhangi bir yardım büyük beğeni topluyor.

- (UIImage*)captureView:(UIView *)view 
{ 
CGRect rect = [[UIScreen mainScreen] bounds]; 
UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[view.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return img; 
} 
+0

ihtiyacı varsa? – Dancreek

cevap

12

following kod birkaç ay önce benim için çalıştı:

CALayer *layer = [[UIApplication sharedApplication] keyWindow].layer; 
CGFloat scale = [UIScreen mainScreen].scale; 
UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, scale); 

[layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
+0

Bu kısmen çalışır ancak durum çubuğunu keser .. durum çubuğunu içerecek herhangi bir fikir? – Steve

+0

Bu mümkün değil. Sadece özel API'leri kullanarak, ancak uygulamanız reddedilir. – kovpas

+0

Tamam, ilginç, üst taraftaki beyaz şeridi, ekran çubuğundan durum çubuğunun çıkarıldığı görülebilir mi? – Steve

1

Swift 3.0 Sürüm herhangi bir Yakalamak geçiyoruz görüntülemek

func getScreenShot() -> UIImage { 

     let layer : CALayer = (UIApplication.shared.keyWindow?.layer)! 
     let scale : CGFloat = UIScreen.main.scale 
     UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale) 
     layer.render(in: UIGraphicsGetCurrentContext()!) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return image! 
    }