2012-02-14 26 views
5
UIImageView *cellimage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , 107, 70)]; 

Yukarıdaki ifadede, hem retina çözme aygıtlarında hem de standart modellerde uygun boyutlar elde edeceğime eminim .. bu, 107 x 70 piksel standart ve retinada 214 x 140 bir çerçeve.UIGraphicsGetImageFromCurrentImageContext retina çözünürlükleri?

Aşağıda bilmek istediğim, UIGraphicsGetImageFromCurrentImageContext'un da aynısını yapıyorsa .. resim standart için 67 x 67, retina sürümleri için 124 x 124 olur mu? Modeller arasında nasıl ayrım yapılacağını bana söyleyemezseniz, . Teşekkürler

cevap

24

UIGraphicsBeginImageContext yerine UIGraphicsBeginImageContextWithOptions kullanmanız gerekir, böylece görüntünün ölçek faktörünü belirtebilirsiniz. Bu aygıtın ana ekranın ölçek faktörünü kullanacağız:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0); 

Bu cellImage içeren ekranın ölçek faktörünü kullanacağız, cellImage bir ekranda ise:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, cellImage.window.screen.scale); 

Bu ölçek hardcode olacak faktör:

+0

anlayamadım .. ilk birini kullanmayı düşünüyorum .. bu retinada 124 x 124 boyutunu yapacak mı? – Shubhank

+0

Hangi bölüm kafa karıştırıcı? UIGraphicsBeginImageContextWithOptions' belgelerini kontrol ettiniz mi? –

+0

[Yüksek Çözünürlüklü Bitmap Görüntüleri Programlı Olarak Oluşturma] (https://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html#//apple_ref/doc/uid/TP40010156- CH15-SW9) –

İlgili konular