SORU
27 NİSAN 2010, Salı


Nasıl UİColor sabit değerleri tanımlamak mı?

Böyle bir şey yapmak istiyorum, ama yapamam kooperatif bir sözdizimi.

static const UIColor *colorNavbar = [UIColor colorWithRed: 197.0/255.0 green: 169.0/255.0 blue: 140.0/255.0 alpha: 1.0];

Makrolar tanımlayabilirim sanırım, ama çok çirkinler.

CEVAP
27 NİSAN 2010, Salı


Kategoriler bu tür bir şey için yeni yöntemler ile sınıfları uzatmak için kullanmak istiyorum. İşte sadece bugün yazdığı kodu bir alıntı:

@implementation UIColor (Extensions)

  (UIColor *)colorWithHueDegrees:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness {
    return [UIColor colorWithHue:(hue/360) saturation:saturation brightness:brightness alpha:1.0];
}

  (UIColor *)aquaColor {
    return [UIColor colorWithHueDegrees:210 saturation:1.0 brightness:1.0];
}

  (UIColor *)paleYellowColor {
    return [UIColor colorWithHueDegrees:60 saturation:0.2 brightness:1.0];
}

@end

Şimdi kod gibi şeyler yapabilirim:

self.view.backgroundColor = highlight? [UIColor paleYellowColor] : [UIColor whitecolor];

ve kendi tanımlı renklerim sistem tanımlı olanlar yanında çok iyi uyum.

(Bu arada, daha fazla düşünmeye başladım HSB açısından renkler daha çok dikkat ediyorum.) RGB olarak daha

GÜNCELLEME değeri precomputing zaman ile ilgili:İçimden bir ses buna değmez. Ama eğer gerçekten isteseydi, static değişkenlere değerler bugünkü ileri matematik:

  (UIColor *)paleYellowColor {
    static UIColor *color = nil;
    if (!color) color = [UIColor colorWithHueDegrees:60 saturation:0.2 brightness:1.0];
    return color;
}

Bir makro memoizing bunu da yapabilirsin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • We've moved!

    We've moved!

    7 Ocak 2008
  • NYLON Video

    NYLON Video

    11 Aralık 2006