SORU
30 NİSAN 2009, PERŞEMBE


Nasıl bir UİView altında bir gölge çizebilirim?

UIView Kakao bir Dokunuş alt kenarı altında bir gölge çizmek için çalışıyorum. CGContextSetShadow() gölge çizmek için kullanmam gerektiğini anlıyorum, ama Kuvars 2D programlama kılavuzu biraz belirsiz

  1. Grafik durumunu kaydetmek.
  2. Fonksiyonu CGContextSetShadow uygun değerleri geçen arayın.
  3. Hangi gölgeler uygulamak istediğiniz tüm çizim yapmak.
  4. Grafik durumunu geri yükleyin

UIView bir alt sınıfta aşağıdaki denedim:

- (void)drawRect:(CGRect)rect {
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextSaveGState(currentContext);
    CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
    CGContextRestoreGState(currentContext);
    [super drawRect: rect];
}

..ama bu benim için işe yaramıyor ve ben biraz yapismis (a) nereye gelecek ve (b) Eğer bir şeye ihtiyacım var benim UIView bu işi yapmak için?

CEVAP
25 Mart 2011, Cuma


self.layer.masksToBounds = NO;
self.layer.cornerRadius = 8; // if you like rounded corners
self.layer.shadowOffset = CGSizeMake(-15, 20);
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = 0.5;

Bu uygulama yavaşlatacaktır. Aşağıdaki satırı performans görünümü gözle görülür bir şekilde dikdörtgen olarak artırabilir eklemek için:

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

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • spyib

    spyib

    9 Ocak 2007