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

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • julioissk84life

    julioissk84l

    18 ŞUBAT 2008
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010