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
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!
JavaScript kilitler nasıl çalışır?...
CSS üçgenler nasıl çalışır?...
Veri bağlama Nasıl çalışır?AngularJS :...
Nasıl veritabanı indeksleme çalışır?...
Bit shift (bit-shift) operatörleri ned...