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

  • Just So

    Just So

    3 HAZİRAN 2007
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010
  • tsweeney79

    tsweeney79

    21 Ocak 2008