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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • FF Radio

    FF Radio

    16 Mayıs 2008
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009