2011-01-03 17 views
36

Szukałem w sieci i nie mogę uzyskać dobrej odpowiedzi, chociaż jestem pewien, że jest to bardzo proste. Czy ktoś może mi pokazać, jak wykonać następujące czynności: Utwórz nazwę UIFont "Helvetica-Bold", rozmiar 8.0 i kolor czarny.Jak zmienić kolor UIFont?

mam nazwę i rozmiar, ale nie mogę dowiedzieć się, jak zmienić kolor:

UIFont *textFont = [UIFont fontWithName:@"Helvetica-Bold" size:8.0]; 

dzięki!

Odpowiedz

51

UIFont nie zawiera/nie utrzymuje informacji o kolorach, więc nie jest to możliwe. Ogólnie rzecz biorąc, kontrole używające UIFont, takie jak UILabel, mają zarówno czcionkę, jak i właściwość textColor. Więc można ustawić czcionkę danej etykiety i jest to kolor tak:

myLabel.textColor = [UIColor blackColor]; 
myLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:8.0]; 
+1

ta funkcjonalność została usunięta z IOS 6.0 – iosMentalist

+0

Myślę, że to działa. Po prostu zrobiłem to szybko, aby uzyskać zmienny kolor czcionki dla UILabel: commandCount + = 1 label.textColor = [.white, .black] [commandCount% 2] – MarkAurelius

1

Można również użyć [myLabel setTextColor:[UIColor grayColor]];.

+1

ta funkcja została usunięta z IOS 6.0 – iosMentalist

4

Jeśli przypadkiem masz renderowania czcionek do tekstury w OpenGL, można też użyć CGContext* functions,

Zakładając masz już poprawny cgcontext:

CGContextSelectFont(cgContext, "Arial", 24, kCGEncodingMacRoman); 
CGContextSetRGBStrokeColor(cgContext, 1.0f, 1, 1, .5f) ; 
CGContextShowTextAtPoint(cgContext, 20, 20, "HI THERE", strlen("HI THERE")) ; 
+0

Zauważ, że CGContextSelectFont jest teraz przestarzałe, użyj interfejsu CoreText API. – Reyske

3

Jeśli rysunek tekst możesz użyć następującej funkcji;

[text drawAtPoint:CGPointMake(x, y) withAttributes:@{ NSFontAttributeName: [UIFont systemFontOfSize:sizeOfFont], NSForegroundColorAttributeName:[UIColor redColor] }];