snapshotViewAfterScreenUpdates
ile oluşturulan bir UIView'dan bir UIImage almak mümkün mü? Bir subview eklendiğindeUIiDen UIiDen snapshot ile oluşturulduViewAfterScreenUpdates:
A UIView snapshotViewAfterScreenUpdates
dönen iyi görünüyor, ama şu siyah bir görüntü üretir:
UIImage *snapshotImage = [self imageFromView:someView];
:
UIView *snapshotView = [someView snapshotViewAfterScreenUpdates:YES];
UIImage *snapshotImage = [self imageFromView:snapshotView];
- (UIImage *)imageFromView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0.0);
// [view.layer renderInContext:UIGraphicsGetCurrentContext()]; // <- same result...
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
O snapshotViewAfterScreenUpdates
dayanmadan görüntü elde etmek elbette mümkündür
Ne yazık ki, karmaşık bir görünüm yakalandığında, drawViewHierarchyInRect
, snapshotViewAfterScreenUpdates
hızıyla eşleşemez. snapshotViewAfterScreenUpdates
tarafından oluşturulan bir görünümden UIImage
almak için daha hızlı olacağını umuyordum, bu mümkün mü?
Bunun işe yaramamasının nedeni, anlık görüntü tarafından döndürülen görünümün aslında tam bir görünüm değil. Hata ayıklayıcısını adım adım atarsanız, bunun türünün '_UIReplicantView' olduğunu görürsünüz. Bu sadece diğer görünümün optimize edilmiş bir kopyası olduğunu ve 'tam' bir UIView ... – MobileVet
teşekkürler @MobileVet'in aynı 'katman' özelliklerine sahip olmadığını düşünmemi sağlıyor, bunu bilmek güzel. Hâlâ hayal kırıklığı yaratan bir özellik, tüm bu hızlı ekran görüntüsü hakkında bir özellikten piksel elde etmenin bir yolu yok ... – carton
Apple bunun mümkün olmadığını doğruladı. Bakınız: http://www.raywenderlich.com/forums/viewtopic.php?f=37&t=8993&start=10 –