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

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006
  • tutvid

    tutvid

    19 AĞUSTOS 2006