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

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • The Dubstep FX

    The Dubstep

    5 Mart 2011