SORU
2 EKİM 2011, Pazar


UİEdgeİnsetsMake nasıl çalışır?

resizableImageWithCapInsets UIEdgeInsetsMake kullandığım bir uygulama geliştiriyorum ama tam olarak nasıl çalıştığını, UIEdgeInsetsMake 4 bağımsız değişken var mı: anlamıyorum

  • Üst
  • Sol
  • Alt
  • Doğru

Ama bir resim için bunu ayarlamak için nasıl bilmiyorum, teşekkürler yüzer! :D

CEVAP
2 EKİM 2011, Pazar


Belgelere göre:

Bir görüntü kapağı parçalar eklemek veya varolan kapağı görüntünün parçalar değiştirmek için bu yöntemi kullanın. Her iki durumda da, yeni bir görüntü almak ve orijinal görüntü kalır.

Görüntü ölçekleme ve yeniden boyutlandırma sırasında, alanları bir kapağa ölçekli veya yeniden boyutlandırılabilir değildir. Bunun yerine, piksel alanı her yönde cap tarafından kapsanmayan karo, soldan sağa ve aşağıya doğru top, resmi yeniden boyutlandırmak için. Bu tekniği sık sık gerektiği gibi aynı yuvarlak köşeleri koruyan ama bölge büyür ya da küçülür kimin değişken genişlik düğmeleri oluşturmak için kullanılır. En iyi performans için, boyutu 1x1 piksel bir alan olduğunu döşeli bir alan kullanın.

Sadece UIEdgeInsetsMake fonksiyonun değerleri unstretchable olun piksel miktarını kullanmak gerekir.

Söyle bir görüntü 21x50 puan (21x50 piksel cinsinden standart çözünürlüklü, 42x100 piksel Retina "@2x" tanımı), bu görüntü için yatay gerilebilir, tutulması 10 puan üzerinde sol ve sağ el değmemiş zaman germe görüntü, ama sadece streç 1-nokta-geniş bant ortada. Sonra UIEdgeInsetsMake(0,10,0,10) kullanacaksınız.

Yüzer onlar rahatsız etme (örneğin yeniden boyutlandırma subpixelling için yararlı oluyor, ama pratikte muhtemelen sadece tamsayı veya ondalık parçaları ile yüzer) kullanacaksınız

Dikkat et, bu iOS5 sadece bir yöntemdir, kullanılamaz önce iOS5 (aslında burada bu hala NDA kapsamında olduğu için bu konuda sormak gerekmez mi). Eğer önceden iOS5 SDK kullanıyorsanız, stretchableImageWithLeftCapWidth:topCapHeight: kullanın.


[DEĞİŞTİR] Bazı ipucuBen, biraz zaman, hiç hatırlamıyorum hangi sipariş alanları UIEdgeInsets yapısı ve hangi sipariş ediyoruz gerekiyor geçirmek için bağımsız değişkenleri UIEdgeInsetsMake fonksiyon tercih ederim kullanma the "designated inits" syntax: bunun gibi

UIEdgeInsets insets = { .left = 50, .right = 50, .top = 10, .bottom = 10 };

Apaçık bir dökme gerektiğinde:

UIImage* rzImg = [image resizableImageWithCapInsets:(UIEdgeInsets){
   .left = 50, .right = 50,
   .top = 10, .bottom = 10
}];

Daha okunabilir, özellikle farklı sınırları/yön karışamayız. emin buluyorum!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010