2009-08-19 13 views
28

Mam następujący kod w mojej aplikacji.UILabel - ustawienie czcionki - krój pisma programowo w iPhonie

tmp=[[UILabel alloc] initWithFrame:label1Frame]; 
tmp.tag=1; 
tmp.textColor=[UIColor blackColor]; 
[tmp setFont:[UIFont fontWithName:@"American Typewriter" size:18]]; 
tmp.backgroundColor=[UIColor clearColor]; 
[cell.contentView addSubview:tmp]; 
[tmp release]; 

Teraz muszę wiedzieć,

======> jak ustawić "Czcionka = bold" za pomocą kodu?

+0

"Przesunięcie cienia etykiety" ma na myśli rozmiar cieniowania etykiety? – devinfoley

+0

@flashcards - Mam rozwiązanie, nie trzeba szukać cienia. [tmp setshadowoffset: cgsizemake (1,1)]; –

+2

@sagar Powinieneś opublikować to jako odpowiedź na własne pytanie, aby je zapisać. Twoje zdrowie! – devinfoley

Odpowiedz

36

Będziesz musiał użyć nazwy czcionki bold w rodzinie. Aby dowiedzieć się, czy istnieje bold wersja amerykańskiego Maszyna do pisania, spróbuj wyprowadzania

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

do konsoli.

W takim przypadku należy użyć "AmericanTypewriter-Bold".

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 
+0

@flashcards - nie próbowałem twojej logiki, ale moja aplikacja się zawiesiła. –

+0

Hmmm ... wygląda jak fontNamesForFamilyName jest statyczną metodą na UIFont, która przyjmuje nazwisko. Naprawię teraz odpowiedź. Czy próbowałeś użyć "AmericanTypewriter-Bold"? – devinfoley

+5

@sagar - Nie ma miejsca między "American Typewriter". Myślę, że umieściłeś między nimi przestrzeń. – Brij

20

Co na temat korzystania z właściwości setter:

// Create a string 
NSString *text = @"You are getting sleepy."; 

// Get a font to draw it in 
UIFont *font = [UIFont boldSystemFontOfSize:28]; 

// Draw the string 
[text drawInRect:(CGRect) 
withFont:font]; 
+0

Jest to przydatne tylko wtedy, gdy chcesz użyć czcionki systemowej. @Spark nie używał czcionki systemowej. –

17

Wystarczy NSLog Czcionka chcesz otrzymać:

NSLog(@" %@", [UIFont fontNamesForFamilyName:@"American Typewriter"]); 

i masz tablicy:

(
    "AmericanTypewriter-CondensedLight", 
    "AmericanTypewriter-Light", 
    "AmericanTypewriter-Bold", 
    AmericanTypewriter, 
    "AmericanTypewriter-CondensedBold", 
    "AmericanTypewriter-Condensed" 
) 

Używaj czego potrzebujesz w Kod:

UILabel * loading = [[UILabel alloc] initWithFrame:CGRectMake(350, 402, 150, 25)]; 
    [loading setFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]]; 
    [loading setTextColor:[UIColor whiteColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"Loading ..."]; 
    [self.view addSubview:loading]; 
1

Jak @devinfoley napisał, trzeba dodać -Bold do fontName używasz. Dla mnie to nie działa z fontNamesForFamilyName, zamiast tego używam fontWithName:size. Może to działa, jeśli programujesz programowo UILabel. W moim przypadku ustawiam font w rozszerzeniu mojego UILabel w awakeFromNib i ustawię to rozszerzenie jako class w Identity Inspector dla mojego konkretnego UILabel. Dzięki self.font.pointSize możesz ustawić fontSize wewnątrz Interface Builder i lepiej sobie z nim poradzić, jeśli masz więcej elementów interfejsu użytkownika.

- (void)awakeFromNib{ 

    [super awakeFromNib]; 
    [self setAdjustsFontSizeToFitWidth:YES]; 
    [self setFont:[UIFont fontWithName:@"Font-Bold" size:self.font.pointSize]]; 
} 

Jeśli urządzenie nie działa font należy wydrukować wszystkie fonts rodziny, dzięki czemu można zobaczyć, jeśli napisał fontName źle. W ten sposób możesz również sprawdzić, czy dostępna jest czcionka bold, jeśli nie została wydrukowana, nie masz tej opcji.

NSLog (@"Available Fonts: %@", [UIFont fontNamesForFamilyName:@"Your Font"]); 

Więcej font rzeczy: https://stackoverflow.com/a/8529661/1141395

2

można uzyskać wszystkie iOS obsługiwane nazwy czcionek w tym miejscu iOSfonts. Take podgląd dokładnym ciągiem, aby znaleźć najlepsze czcionki i używać go jak wspomniano w powyższych odpowiedziach

UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 150, 50)]; 
    [loading setFont:[UIFont fontWithName:@"Avenir-Black" size:12.0]]; 
    [loading setTextColor:[UIColor redColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"My Label Title"]; 
    [self.view myLabel]; 
0

Swift aktualizacja

Jeśli już dodany czcionkę do aplikacji (jak wyjaśniono here) można użyć extension funkcję Swift z, jako przykład, UILabel i czcionkę Roboto:

extension UILabel { 

    func setFont(style: String, size: Int){ 
     self.font = UIFont(name: style, size: CGFloat(size)) 
    } 

    struct FontStyle { 
     public static let italic: String = "Roboto-LightItalic" 
     public static let normal: String = "Roboto-Light" 
     public static let thin: String = "Roboto-Thin" 
    } 
} 

Roboto-LightItalic i Roboto-Light to nazwy plików czcionek TTF. Następnie możesz po prostu zadzwonić pod numer

someUILabel.setFont(style: UILabel.FontStyle.normal, size: 20) 
Powiązane problemy