2010-09-09 15 views
18

iPhone/iPad'deki UIView'lere gölgeler eklemenin ne kadar kolay olduğunu öğrendiğimde oldukça heyecanlandım. Daha sonra SonraKuvars ile çizim gölgesi iPhone ve iPad'de yavaştır. Diğer yol?

#import <QuartzCore/QuartzCore.h> 

:

self.contentView.layer.shadowRadius = 3.0; 
self.contentView.layer.shadowOffset = CGSizeMake(-2.0, -3.0); 
self.contentView.layer.shadowOpacity = 0.5; 
self.contentView.layer.shadowColor = [UIColor blackColor].CGColor; 

bu benim app güzel gölge oluşturmak olsa da, bunu

Sadece dosyanın başına ithalat ekleyin Xcode çerçeve eklemek ayrıca görüntülendiğinde, hata ayıklayıcısının dışında başlatılsa bile, şimdi ölüme gider. Unuttuğum bir şey mi var, yoksa bu yöntem daha büyük görüş için pratik değil mi?

Referans için bir ekran görüntüsü yayınladım here.

cevap

53

shadowPath property'u ayarlamalısınız. CoreGraphics gölgeleri nasıl optimize edebilir. görünümünüzü opak bir dikdörtgen ise

Örneğin,: Bu taş yorumların gömülmek istemediğini çünkü

self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.contentView.bounds].CGPath; 
+0

Gerçekten de bu tam olarak aradığım şey. Teşekkürler! – Moduspwnens

+0

Google'dan buraya gelenler için, örneğin, "self.bounds" u "self.contentView.bounds" olarak değiştirebilir miyim? – Moduspwnens

+0

@Moduspwnens gerçekten – cobbal

6

Düşünce bir yanıt yapmalıdır. Yukarıdaki cobbal'in cevabına ek olarak, yukarıda sözü edilen coulbalin yanı sıra metin gölgeleri gibi dikdörtgen olmayan gölgeler için aşağıdaki optimizasyondan da bahsetmiştir.

self.contentView.layer.shouldRasterize = YES; 
// Fix visual degradation when rasterizing on high-density screens: 
self.contentView.layer.rasterizationScale = [[UIScreen mainScreen] scale];